[−]Trait lodepng::Pod
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
orchar
, which have illegal bit patterns). - The type must not contain any padding bytes, either in the middle or on
the end (eg: no
#[repr(C)] struct Foo(u8, u16)
, which has padding in the middle, and also no#[repr(C)] struct Foo(u16, u8)
, which has padding on the end). - The type needs to have all fields also be
Pod
. - The type needs to be
repr(C)
orrepr(transparent)
. In the case ofrepr(C)
, thepacked
andalign
repr modifiers can be used as long as all other rules end up being followed.
Implementations on Foreign Types
impl<T> Pod for BGR<T> where
T: Pod,
[src]
T: Pod,
impl<T, A> Pod for RGBA<T, A> where
T: Pod,
A: Pod,
[src]
T: Pod,
A: Pod,
impl<T, A> Pod for BGRA<T, A> where
T: Pod,
A: Pod,
[src]
T: Pod,
A: Pod,
impl<T> Pod for [T; 48] where
T: Pod,
T: Pod,
impl Pod for i8
impl<T> Pod for [T; 256] where
T: Pod,
T: Pod,
impl<T> Pod for ManuallyDrop<T> where
T: Pod,
T: Pod,
impl<T> Pod for [T; 24] where
T: Pod,
T: Pod,
impl<T> Pod for [T; 64] where
T: Pod,
T: Pod,
impl Pod for __m256i
impl<T> Pod for [T; 27] where
T: Pod,
T: Pod,
impl<T> Pod for [T; 25] where
T: Pod,
T: Pod,
impl<T> Pod for [T; 18] where
T: Pod,
T: Pod,
impl Pod for u16
impl<T> Pod for [T; 20] where
T: Pod,
T: Pod,
impl<T> Pod for [T; 19] where
T: Pod,
T: Pod,
impl Pod for __m128
impl Pod for Option<NonZeroI16>
impl<T> Pod for [T; 21] where
T: Pod,
T: Pod,
impl Pod for i64
impl Pod for u128
impl<T> Pod for *mut T where
T: 'static,
T: 'static,
impl<T> Pod for [T; 96] where
T: Pod,
T: Pod,
impl<T> Pod for [T; 5] where
T: Pod,
T: Pod,
impl Pod for __m128d
impl Pod for i16
impl<T> Pod for [T; 16] where
T: Pod,
T: Pod,
impl Pod for isize
impl<T> Pod for [T; 9] where
T: Pod,
T: Pod,
impl Pod for u8
impl Pod for Option<NonZeroUsize>
impl<T> Pod for [T; 29] where
T: Pod,
T: Pod,
impl<T> Pod for Wrapping<T> where
T: Pod,
T: Pod,
impl Pod for i128
impl<T> Pod for [T; 512] where
T: Pod,
T: Pod,
impl<T> Pod for [T; 23] where
T: Pod,
T: Pod,
impl Pod for i32
impl Pod for Option<NonZeroI128>
impl<T> Pod for *const T where
T: 'static,
T: 'static,
impl Pod for Option<NonZeroI32>
impl Pod for __m256
impl<T> Pod for [T; 1] where
T: Pod,
T: Pod,
impl<T> Pod for [T; 28] where
T: Pod,
T: Pod,
impl<T> Pod for [T; 4] where
T: Pod,
T: Pod,
impl Pod for __m256d
impl Pod for f32
impl<T> Pod for [T; 3] where
T: Pod,
T: Pod,
impl<T> Pod for [T; 0] where
T: Pod,
T: Pod,
impl Pod for ()
impl Pod for Option<NonZeroU64>
impl Pod for usize
impl<T> Pod for Option<NonNull<T>> where
T: 'static,
T: 'static,
impl Pod for Option<NonZeroU8>
impl<T> Pod for [T; 17] where
T: Pod,
T: Pod,
impl<T> Pod for [T; 6] where
T: Pod,
T: Pod,
impl<T> Pod for [T; 30] where
T: Pod,
T: Pod,
impl Pod for Option<NonZeroU16>
impl<T> Pod for [T; 2048] where
T: Pod,
T: Pod,
impl Pod for Option<NonZeroI8>
impl Pod for __m128i
impl<T> Pod for [T; 22] where
T: Pod,
T: Pod,
impl<T> Pod for PhantomData<T> where
T: Pod,
T: Pod,
impl Pod for Option<NonZeroU128>
impl<T> Pod for [T; 12] where
T: Pod,
T: Pod,
impl<T> Pod for [T; 11] where
T: Pod,
T: Pod,
impl Pod for u32
impl<T> Pod for [T; 1024] where
T: Pod,
T: Pod,
impl<T> Pod for [T; 31] where
T: Pod,
T: Pod,
impl<T> Pod for [T; 7] where
T: Pod,
T: Pod,
impl<T> Pod for [T; 13] where
T: Pod,
T: Pod,
impl<T> Pod for [T; 14] where
T: Pod,
T: Pod,
impl<T> Pod for [T; 4096] where
T: Pod,
T: Pod,
impl Pod for Option<NonZeroI64>
impl Pod for f64
impl Pod for Option<NonZeroIsize>
impl<T> Pod for [T; 128] where
T: Pod,
T: Pod,
impl<T> Pod for [T; 8] where
T: Pod,
T: Pod,
impl<T> Pod for [T; 15] where
T: Pod,
T: Pod,
impl<T> Pod for [T; 26] where
T: Pod,
T: Pod,
impl Pod for Option<NonZeroU32>
impl<T> Pod for [T; 10] where
T: Pod,
T: Pod,
impl<T> Pod for [T; 2] where
T: Pod,
T: Pod,
impl<T> Pod for [T; 32] where
T: Pod,
T: Pod,
impl Pod for u64
Loading content...Implementors
impl<T> Pod for Gray<T> where
T: Pod,
[src]
T: Pod,
impl<T> Pod for RGB<T> where
T: Pod,
[src]
T: Pod,
impl<T, A> Pod for GrayAlpha<T, A> where
T: Pod,
A: Pod,
[src]
T: Pod,
A: Pod,