[−][src]Trait chromium::StableLayout
Indicates a type with a layout that is stable across Rust compiler versions.
Safety
The type's Type Layout must fit one of the following:
- Primitive layout types of 64-bits or less.
- Examples:
i8
,u32
- Examples:
- Any zero-sized type (ZST).
- Examples:
()
- Examples:
repr(C)
struct
orunion
types when all fields are alsoStableLayout
.- Examples: Most
libc
andwinapi
types.
- Examples: Most
repr(transparent)
struct
orunion
types when the non-ZST field is alsoStableLayout
.- Examples:
Wrapping<T>
whereT: StableLayout
.
- Examples:
- Any other layout that is guaranteed by Rust.
- Examples:
&T
and&mut T
whereT: Sized
.
- Examples:
Specifically there are some things that this type does not attempt to
guarantee. StableLayout
types can have:
- Uninitialized bytes, such as padding bytes.
- Invalid bit patterns, such as
bool
andchar
.
Implementations on Foreign Types
impl<T> StableLayout for PhantomData<T> where
T: StableLayout,
[src]
T: StableLayout,
PhantomData
is a zero-sized type and so technically it could be defined as
always being StableLayout
. However, since PhantomData
is semantically
supposed to indicate to the world that you want to be treated like you're
holding some sort of T
, then we will also require that the T
be a
StableLayout
type.
impl<T> StableLayout for Wrapping<T> where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for ManuallyDrop<T> where
T: StableLayout,
[src]
T: StableLayout,
impl StableLayout for NonZeroU8
[src]
impl StableLayout for NonZeroU16
[src]
impl StableLayout for NonZeroU32
[src]
impl StableLayout for NonZeroU64
[src]
impl StableLayout for NonZeroUsize
[src]
impl StableLayout for Option<NonZeroU8>
[src]
impl StableLayout for Option<NonZeroU16>
[src]
impl StableLayout for Option<NonZeroU32>
[src]
impl StableLayout for Option<NonZeroU64>
[src]
impl StableLayout for Option<NonZeroUsize>
[src]
impl StableLayout for NonZeroI8
[src]
impl StableLayout for NonZeroI16
[src]
impl StableLayout for NonZeroI32
[src]
impl StableLayout for NonZeroI64
[src]
impl StableLayout for NonZeroIsize
[src]
impl StableLayout for Option<NonZeroI8>
[src]
impl StableLayout for Option<NonZeroI16>
[src]
impl StableLayout for Option<NonZeroI32>
[src]
impl StableLayout for Option<NonZeroI64>
[src]
impl StableLayout for Option<NonZeroIsize>
[src]
impl<'_, T> StableLayout for Option<&'_ T> where
T: Sized + StableLayout,
[src]
T: Sized + StableLayout,
impl<'_, T> StableLayout for Option<&'_ mut T> where
T: Sized + StableLayout,
[src]
T: Sized + StableLayout,
impl<T> StableLayout for NonNull<T> where
T: Sized + StableLayout,
[src]
T: Sized + StableLayout,
impl<T> StableLayout for Option<NonNull<T>> where
T: Sized + StableLayout,
[src]
T: Sized + StableLayout,
impl<T> StableLayout for UnsafeCell<T> where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for Cell<T> where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for Box<T> where
T: Sized + StableLayout,
[src]
T: Sized + StableLayout,
impl<T> StableLayout for Option<Box<T>> where
T: Sized + StableLayout,
[src]
T: Sized + StableLayout,
impl StableLayout for __m128i
[src]
impl StableLayout for __m128
[src]
impl StableLayout for __m128d
[src]
impl StableLayout for __m256i
[src]
impl StableLayout for __m256
[src]
impl StableLayout for __m256d
[src]
Loading content...
Implementors
impl StableLayout for ()
[src]
impl StableLayout for StableString
[src]
impl StableLayout for bool
[src]
impl StableLayout for char
[src]
impl StableLayout for f32
[src]
impl StableLayout for f64
[src]
impl StableLayout for i8
[src]
impl StableLayout for i16
[src]
impl StableLayout for i32
[src]
impl StableLayout for i64
[src]
impl StableLayout for isize
[src]
impl StableLayout for u8
[src]
impl StableLayout for u16
[src]
impl StableLayout for u32
[src]
impl StableLayout for u64
[src]
impl StableLayout for usize
[src]
impl<'_, T> StableLayout for &'_ T where
T: Sized + StableLayout,
[src]
T: Sized + StableLayout,
impl<'_, T> StableLayout for &'_ mut T where
T: Sized + StableLayout,
[src]
T: Sized + StableLayout,
impl<'a> StableLayout for SharedStr<'a>
[src]
impl<'a> StableLayout for UniqueStr<'a>
[src]
impl<'a, T: StableLayout> StableLayout for SharedSlice<'a, T>
[src]
impl<'a, T: StableLayout> StableLayout for UniqueSlice<'a, T>
[src]
impl<T> StableLayout for *const T where
T: Sized + StableLayout,
[src]
T: Sized + StableLayout,
impl<T> StableLayout for *mut T where
T: Sized + StableLayout,
[src]
T: Sized + StableLayout,
impl<T> StableLayout for [T; 0] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 1] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 2] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 3] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 4] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 5] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 6] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 7] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 8] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 9] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 10] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 11] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 12] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 13] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 14] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 15] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 16] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 17] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 18] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 19] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 20] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 21] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 22] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 23] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 24] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 25] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 26] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 27] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 28] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 29] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 30] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 31] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 32] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 48] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 64] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 96] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 128] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 256] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 512] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 1024] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 2048] where
T: StableLayout,
[src]
T: StableLayout,
impl<T> StableLayout for [T; 4096] where
T: StableLayout,
[src]
T: StableLayout,