[][src]Trait lokacore::Pod

pub unsafe trait Pod: 'static + Zeroable + Copy { }

Marker trait for "plain old data".

The point of this trait is that once something is marked "plain old data" you can really go to town with the bit fiddling and bit casting. Therefore, it's a relatively strong claim to make about a type. Do not add this to your type casually.

Reminder: The results of casting around bytes between data types are endian dependant. Little-endian machines are the most common, but big-endian machines do exist (and big-endian is also used for "network order" bytes).

Safety

  • The type must be inhabited (eg: no Infallible).
  • The type must allow any bit pattern (eg: no bool or char).
  • The type must not contain any padding bytes (eg: no (u8, u16)).
  • A struct needs to have all fields be Pod and be repr(C), repr(transparent), or repr(packed).

Implementations on Foreign Types

impl Pod for Option<NonZeroU16>[src]

impl Pod for Option<NonZeroI8>[src]

impl Pod for Option<NonZeroIsize>[src]

impl Pod for Option<NonZeroU128>[src]

impl Pod for Option<NonZeroI32>[src]

impl Pod for __m128i[src]

impl<T> Pod for ManuallyDrop<T> where
    T: Pod
[src]

impl Pod for Option<NonZeroI64>[src]

impl Pod for __m128[src]

impl Pod for Option<NonZeroUsize>[src]

impl Pod for __m256i[src]

impl<T> Pod for Option<NonNull<T>> where
    T: 'static, 
[src]

impl Pod for __m256[src]

impl Pod for Option<NonZeroU64>[src]

impl Pod for Option<NonZeroI16>[src]

impl Pod for Option<NonZeroU8>[src]

impl Pod for Option<NonZeroI128>[src]

impl Pod for __m128d[src]

impl Pod for __m256d[src]

impl<T> Pod for Wrapping<T> where
    T: Pod
[src]

impl Pod for Option<NonZeroU32>[src]

impl<T> Pod for PhantomData<T> where
    T: Pod
[src]

Loading content...

Implementors

impl Pod for ()[src]

impl Pod for m128[src]

impl Pod for m128d[src]

impl Pod for m128i[src]

impl Pod for Align16<[f32; 4]>[src]

impl Pod for Align16<[f64; 2]>[src]

impl Pod for Align16<[i16; 8]>[src]

impl Pod for Align16<[i32; 4]>[src]

impl Pod for Align16<[i64; 2]>[src]

impl Pod for Align16<[i8; 16]>[src]

impl Pod for Align16<[u16; 8]>[src]

impl Pod for Align16<[u32; 4]>[src]

impl Pod for Align16<[u64; 2]>[src]

impl Pod for Align16<[u8; 16]>[src]

impl Pod for Align16<[usize; 4]>[src]

impl Pod for Align16<i128>[src]

impl Pod for Align16<u128>[src]

impl Pod for Align2<[i8; 2]>[src]

impl Pod for Align2<[u8; 2]>[src]

impl Pod for Align32<[f32; 8]>[src]

impl Pod for Align32<[f64; 4]>[src]

impl Pod for Align32<[i128; 2]>[src]

impl Pod for Align32<[i16; 16]>[src]

impl Pod for Align32<[i32; 8]>[src]

impl Pod for Align32<[i64; 4]>[src]

impl Pod for Align32<[i8; 32]>[src]

impl Pod for Align32<[u128; 2]>[src]

impl Pod for Align32<[u16; 16]>[src]

impl Pod for Align32<[u32; 8]>[src]

impl Pod for Align32<[u64; 4]>[src]

impl Pod for Align32<[u8; 32]>[src]

impl Pod for Align32<[usize; 8]>[src]

impl Pod for Align4<[i16; 2]>[src]

impl Pod for Align4<[i8; 4]>[src]

impl Pod for Align4<[u16; 2]>[src]

impl Pod for Align4<[u8; 4]>[src]

impl Pod for Align8<[f32; 2]>[src]

impl Pod for Align8<[i16; 4]>[src]

impl Pod for Align8<[i32; 2]>[src]

impl Pod for Align8<[i8; 8]>[src]

impl Pod for Align8<[u16; 4]>[src]

impl Pod for Align8<[u32; 2]>[src]

impl Pod for Align8<[u8; 8]>[src]

impl Pod for Align8<[usize; 2]>[src]

impl Pod for f32[src]

impl Pod for f64[src]

impl Pod for i8[src]

impl Pod for i16[src]

impl Pod for i32[src]

impl Pod for i64[src]

impl Pod for i128[src]

impl Pod for isize[src]

impl Pod for u8[src]

impl Pod for u16[src]

impl Pod for u32[src]

impl Pod for u64[src]

impl Pod for u128[src]

impl Pod for usize[src]

impl<T> Pod for *const T where
    T: 'static, 
[src]

impl<T> Pod for *mut T where
    T: 'static, 
[src]

impl<T> Pod for [T; 0] where
    T: Pod
[src]

impl<T> Pod for [T; 1] where
    T: Pod
[src]

impl<T> Pod for [T; 2] where
    T: Pod
[src]

impl<T> Pod for [T; 3] where
    T: Pod
[src]

impl<T> Pod for [T; 4] where
    T: Pod
[src]

impl<T> Pod for [T; 5] where
    T: Pod
[src]

impl<T> Pod for [T; 6] where
    T: Pod
[src]

impl<T> Pod for [T; 7] where
    T: Pod
[src]

impl<T> Pod for [T; 8] where
    T: Pod
[src]

impl<T> Pod for [T; 9] where
    T: Pod
[src]

impl<T> Pod for [T; 10] where
    T: Pod
[src]

impl<T> Pod for [T; 11] where
    T: Pod
[src]

impl<T> Pod for [T; 12] where
    T: Pod
[src]

impl<T> Pod for [T; 13] where
    T: Pod
[src]

impl<T> Pod for [T; 14] where
    T: Pod
[src]

impl<T> Pod for [T; 15] where
    T: Pod
[src]

impl<T> Pod for [T; 16] where
    T: Pod
[src]

impl<T> Pod for [T; 17] where
    T: Pod
[src]

impl<T> Pod for [T; 18] where
    T: Pod
[src]

impl<T> Pod for [T; 19] where
    T: Pod
[src]

impl<T> Pod for [T; 20] where
    T: Pod
[src]

impl<T> Pod for [T; 21] where
    T: Pod
[src]

impl<T> Pod for [T; 22] where
    T: Pod
[src]

impl<T> Pod for [T; 23] where
    T: Pod
[src]

impl<T> Pod for [T; 24] where
    T: Pod
[src]

impl<T> Pod for [T; 25] where
    T: Pod
[src]

impl<T> Pod for [T; 26] where
    T: Pod
[src]

impl<T> Pod for [T; 27] where
    T: Pod
[src]

impl<T> Pod for [T; 28] where
    T: Pod
[src]

impl<T> Pod for [T; 29] where
    T: Pod
[src]

impl<T> Pod for [T; 30] where
    T: Pod
[src]

impl<T> Pod for [T; 31] where
    T: Pod
[src]

impl<T> Pod for [T; 32] where
    T: Pod
[src]

impl<T> Pod for [T; 48] where
    T: Pod
[src]

impl<T> Pod for [T; 64] where
    T: Pod
[src]

impl<T> Pod for [T; 96] where
    T: Pod
[src]

impl<T> Pod for [T; 128] where
    T: Pod
[src]

impl<T> Pod for [T; 256] where
    T: Pod
[src]

impl<T> Pod for [T; 512] where
    T: Pod
[src]

impl<T> Pod for [T; 1024] where
    T: Pod
[src]

Loading content...