/rust/registry/src/index.crates.io-1949cf8c6b5b557f/deranged-0.4.0/src/unsafe_wrapper.rs
Line | Count | Source |
1 | | //! Declaration and implementation of `Unsafe`, which ensures all unsafe operations are correctly |
2 | | //! placed in unsafe blocks. |
3 | | |
4 | | /// A value that is safe to use, but is unsafe to construct or mutate. |
5 | | #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] |
6 | | pub(crate) struct Unsafe<T>(T); |
7 | | |
8 | | impl<T: core::fmt::Debug> core::fmt::Debug for Unsafe<T> { |
9 | | #[inline] |
10 | | fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { |
11 | | self.0.fmt(f) |
12 | | } |
13 | | } |
14 | | |
15 | | impl<T> Unsafe<T> { |
16 | | /// Create a new `Unsafe`, asserting that all invariants are upheld. |
17 | | #[inline(always)] |
18 | 30.4M | pub(crate) const unsafe fn new(value: T) -> Self { |
19 | 30.4M | Self(value) |
20 | 30.4M | } <deranged::unsafe_wrapper::Unsafe<i32>>::new Line | Count | Source | 18 | 1.14M | pub(crate) const unsafe fn new(value: T) -> Self { | 19 | 1.14M | Self(value) | 20 | 1.14M | } |
<deranged::unsafe_wrapper::Unsafe<i64>>::new Line | Count | Source | 18 | 1.15M | pub(crate) const unsafe fn new(value: T) -> Self { | 19 | 1.15M | Self(value) | 20 | 1.15M | } |
<deranged::unsafe_wrapper::Unsafe<i32>>::new Line | Count | Source | 18 | 1.22M | pub(crate) const unsafe fn new(value: T) -> Self { | 19 | 1.22M | Self(value) | 20 | 1.22M | } |
Unexecuted instantiation: <deranged::unsafe_wrapper::Unsafe<i8>>::new <deranged::unsafe_wrapper::Unsafe<u8>>::new Line | Count | Source | 18 | 7.11M | pub(crate) const unsafe fn new(value: T) -> Self { | 19 | 7.11M | Self(value) | 20 | 7.11M | } |
<deranged::unsafe_wrapper::Unsafe<u32>>::new Line | Count | Source | 18 | 2.37M | pub(crate) const unsafe fn new(value: T) -> Self { | 19 | 2.37M | Self(value) | 20 | 2.37M | } |
Unexecuted instantiation: <deranged::unsafe_wrapper::Unsafe<i128>>::new Unexecuted instantiation: <deranged::unsafe_wrapper::Unsafe<i16>>::new Unexecuted instantiation: <deranged::unsafe_wrapper::Unsafe<u16>>::new <deranged::unsafe_wrapper::Unsafe<i32>>::new Line | Count | Source | 18 | 1.50M | pub(crate) const unsafe fn new(value: T) -> Self { | 19 | 1.50M | Self(value) | 20 | 1.50M | } |
<deranged::unsafe_wrapper::Unsafe<i64>>::new Line | Count | Source | 18 | 1.51M | pub(crate) const unsafe fn new(value: T) -> Self { | 19 | 1.51M | Self(value) | 20 | 1.51M | } |
<deranged::unsafe_wrapper::Unsafe<i32>>::new Line | Count | Source | 18 | 1.67M | pub(crate) const unsafe fn new(value: T) -> Self { | 19 | 1.67M | Self(value) | 20 | 1.67M | } |
Unexecuted instantiation: <deranged::unsafe_wrapper::Unsafe<i8>>::new <deranged::unsafe_wrapper::Unsafe<u8>>::new Line | Count | Source | 18 | 9.53M | pub(crate) const unsafe fn new(value: T) -> Self { | 19 | 9.53M | Self(value) | 20 | 9.53M | } |
<deranged::unsafe_wrapper::Unsafe<u32>>::new Line | Count | Source | 18 | 3.17M | pub(crate) const unsafe fn new(value: T) -> Self { | 19 | 3.17M | Self(value) | 20 | 3.17M | } |
Unexecuted instantiation: <deranged::unsafe_wrapper::Unsafe<i128>>::new Unexecuted instantiation: <deranged::unsafe_wrapper::Unsafe<i16>>::new Unexecuted instantiation: <deranged::unsafe_wrapper::Unsafe<u16>>::new |
21 | | |
22 | | /// Get a reference to the inner value. |
23 | | #[inline(always)] |
24 | 42.6M | pub(crate) const fn get(&self) -> &T { |
25 | 42.6M | &self.0 |
26 | 42.6M | } Unexecuted instantiation: <deranged::unsafe_wrapper::Unsafe<i8>>::get <deranged::unsafe_wrapper::Unsafe<u8>>::get Line | Count | Source | 24 | 24.2k | pub(crate) const fn get(&self) -> &T { | 25 | 24.2k | &self.0 | 26 | 24.2k | } |
Unexecuted instantiation: <deranged::unsafe_wrapper::Unsafe<u32>>::get Unexecuted instantiation: <deranged::unsafe_wrapper::Unsafe<i64>>::get Unexecuted instantiation: <deranged::unsafe_wrapper::Unsafe<i8>>::get Unexecuted instantiation: <deranged::unsafe_wrapper::Unsafe<u8>>::get Unexecuted instantiation: <deranged::unsafe_wrapper::Unsafe<u32>>::get <deranged::unsafe_wrapper::Unsafe<i32>>::get Line | Count | Source | 24 | 3.44M | pub(crate) const fn get(&self) -> &T { | 25 | 3.44M | &self.0 | 26 | 3.44M | } |
<deranged::unsafe_wrapper::Unsafe<i8>>::get Line | Count | Source | 24 | 16.7k | pub(crate) const fn get(&self) -> &T { | 25 | 16.7k | &self.0 | 26 | 16.7k | } |
<deranged::unsafe_wrapper::Unsafe<u8>>::get Line | Count | Source | 24 | 10.9M | pub(crate) const fn get(&self) -> &T { | 25 | 10.9M | &self.0 | 26 | 10.9M | } |
<deranged::unsafe_wrapper::Unsafe<u32>>::get Line | Count | Source | 24 | 3.65M | pub(crate) const fn get(&self) -> &T { | 25 | 3.65M | &self.0 | 26 | 3.65M | } |
Unexecuted instantiation: <deranged::unsafe_wrapper::Unsafe<i128>>::get Unexecuted instantiation: <deranged::unsafe_wrapper::Unsafe<i16>>::get Unexecuted instantiation: <deranged::unsafe_wrapper::Unsafe<u16>>::get Unexecuted instantiation: <deranged::unsafe_wrapper::Unsafe<i8>>::get <deranged::unsafe_wrapper::Unsafe<u8>>::get Line | Count | Source | 24 | 46.1k | pub(crate) const fn get(&self) -> &T { | 25 | 46.1k | &self.0 | 26 | 46.1k | } |
Unexecuted instantiation: <deranged::unsafe_wrapper::Unsafe<u32>>::get <deranged::unsafe_wrapper::Unsafe<i64>>::get Line | Count | Source | 24 | 1.87k | pub(crate) const fn get(&self) -> &T { | 25 | 1.87k | &self.0 | 26 | 1.87k | } |
Unexecuted instantiation: <deranged::unsafe_wrapper::Unsafe<i8>>::get Unexecuted instantiation: <deranged::unsafe_wrapper::Unsafe<u8>>::get Unexecuted instantiation: <deranged::unsafe_wrapper::Unsafe<u32>>::get <deranged::unsafe_wrapper::Unsafe<i32>>::get Line | Count | Source | 24 | 4.52M | pub(crate) const fn get(&self) -> &T { | 25 | 4.52M | &self.0 | 26 | 4.52M | } |
<deranged::unsafe_wrapper::Unsafe<i8>>::get Line | Count | Source | 24 | 48.7k | pub(crate) const fn get(&self) -> &T { | 25 | 48.7k | &self.0 | 26 | 48.7k | } |
<deranged::unsafe_wrapper::Unsafe<u8>>::get Line | Count | Source | 24 | 14.9M | pub(crate) const fn get(&self) -> &T { | 25 | 14.9M | &self.0 | 26 | 14.9M | } |
<deranged::unsafe_wrapper::Unsafe<u32>>::get Line | Count | Source | 24 | 4.97M | pub(crate) const fn get(&self) -> &T { | 25 | 4.97M | &self.0 | 26 | 4.97M | } |
Unexecuted instantiation: <deranged::unsafe_wrapper::Unsafe<i128>>::get Unexecuted instantiation: <deranged::unsafe_wrapper::Unsafe<i16>>::get Unexecuted instantiation: <deranged::unsafe_wrapper::Unsafe<u16>>::get |
27 | | } |
28 | | |
29 | | impl<T> core::ops::Deref for Unsafe<T> { |
30 | | type Target = T; |
31 | | |
32 | | #[inline(always)] |
33 | | fn deref(&self) -> &Self::Target { |
34 | | &self.0 |
35 | | } |
36 | | } |