[][src]Trait safe_bytes::PaddingBane

pub unsafe trait PaddingBane {
    type Fields: Copy;
    fn get_fields(&self) -> Self::Fields;
unsafe fn init_padding(fields: Self::Fields, bytes: &mut [MaybeUninit<u8>]); }

This trait must be implemented in order to fill padding bytes of an object.

Associated Types

type Fields: Copy

Metadata about type's fields.

Loading content...

Required methods

fn get_fields(&self) -> Self::Fields

Return fields metadata.

Safety

This function must return equal value for any instance of the Self type. It exists only because reference to instance is required to fetch field offsets.

unsafe fn init_padding(fields: Self::Fields, bytes: &mut [MaybeUninit<u8>])

Fills padding bytes in the bytes array. Padding bytes are bytes where no fields of the struct are stored or padding bytes of the fields.

Safety

fields must be created from any instance of Self. bytes must be created by casting &mut Self or, for a field, it must be subslice of the parent's bytes where field is stored.

Loading content...

Implementations on Foreign Types

impl PaddingBane for AtomicU8[src]

type Fields = PhantomData<fn(_: AtomicU8) -> AtomicU8>

impl PaddingBane for AtomicI8[src]

type Fields = PhantomData<fn(_: AtomicI8) -> AtomicI8>

impl PaddingBane for AtomicU16[src]

type Fields = PhantomData<fn(_: AtomicU16) -> AtomicU16>

impl PaddingBane for AtomicI16[src]

type Fields = PhantomData<fn(_: AtomicI16) -> AtomicI16>

impl PaddingBane for AtomicU32[src]

type Fields = PhantomData<fn(_: AtomicU32) -> AtomicU32>

impl PaddingBane for AtomicI32[src]

type Fields = PhantomData<fn(_: AtomicI32) -> AtomicI32>

impl PaddingBane for AtomicU64[src]

type Fields = PhantomData<fn(_: AtomicU64) -> AtomicU64>

impl PaddingBane for AtomicI64[src]

type Fields = PhantomData<fn(_: AtomicI64) -> AtomicI64>

impl PaddingBane for AtomicUsize[src]

type Fields = PhantomData<fn(_: AtomicUsize) -> AtomicUsize>

impl PaddingBane for AtomicIsize[src]

type Fields = PhantomData<fn(_: AtomicIsize) -> AtomicIsize>

impl PaddingBane for Option<NonZeroI8>[src]

type Fields = PhantomData<fn(_: Option<NonZeroI8>) -> Option<NonZeroI8>>

impl PaddingBane for Option<NonZeroI16>[src]

type Fields = PhantomData<fn(_: Option<NonZeroI16>) -> Option<NonZeroI16>>

impl PaddingBane for Option<NonZeroI32>[src]

type Fields = PhantomData<fn(_: Option<NonZeroI32>) -> Option<NonZeroI32>>

impl PaddingBane for Option<NonZeroI64>[src]

type Fields = PhantomData<fn(_: Option<NonZeroI64>) -> Option<NonZeroI64>>

impl PaddingBane for Option<NonZeroI128>[src]

type Fields = PhantomData<fn(_: Option<NonZeroI128>) -> Option<NonZeroI128>>

impl PaddingBane for Option<NonZeroIsize>[src]

type Fields = PhantomData<fn(_: Option<NonZeroIsize>) -> Option<NonZeroIsize>>

impl PaddingBane for Option<NonZeroU8>[src]

type Fields = PhantomData<fn(_: Option<NonZeroU8>) -> Option<NonZeroU8>>

impl PaddingBane for Option<NonZeroU16>[src]

type Fields = PhantomData<fn(_: Option<NonZeroU16>) -> Option<NonZeroU16>>

impl PaddingBane for Option<NonZeroU32>[src]

type Fields = PhantomData<fn(_: Option<NonZeroU32>) -> Option<NonZeroU32>>

impl PaddingBane for Option<NonZeroU64>[src]

type Fields = PhantomData<fn(_: Option<NonZeroU64>) -> Option<NonZeroU64>>

impl PaddingBane for Option<NonZeroU128>[src]

type Fields = PhantomData<fn(_: Option<NonZeroU128>) -> Option<NonZeroU128>>

impl PaddingBane for Option<NonZeroUsize>[src]

type Fields = PhantomData<fn(_: Option<NonZeroUsize>) -> Option<NonZeroUsize>>

impl<T> PaddingBane for Option<NonNull<T>>[src]

type Fields = PhantomData<fn(_: Option<NonNull<T>>) -> Option<NonNull<T>>>

impl<T> PaddingBane for PhantomData<T>[src]

type Fields = PhantomData<fn(_: PhantomData<T>) -> PhantomData<T>>

impl PaddingBane for PhantomPinned[src]

type Fields = PhantomData<fn(_: PhantomPinned) -> PhantomPinned>

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

type Fields = T::Fields

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

type Fields = T::Fields

Loading content...

Implementors

impl PaddingBane for ()[src]

type Fields = PhantomData<fn(_: ())>

impl PaddingBane for bool[src]

type Fields = PhantomData<fn(_: bool) -> bool>

impl PaddingBane for f32[src]

type Fields = PhantomData<fn(_: f32) -> f32>

impl PaddingBane for f64[src]

type Fields = PhantomData<fn(_: f64) -> f64>

impl PaddingBane for i8[src]

type Fields = PhantomData<fn(_: i8) -> i8>

impl PaddingBane for i16[src]

type Fields = PhantomData<fn(_: i16) -> i16>

impl PaddingBane for i32[src]

type Fields = PhantomData<fn(_: i32) -> i32>

impl PaddingBane for i64[src]

type Fields = PhantomData<fn(_: i64) -> i64>

impl PaddingBane for i128[src]

type Fields = PhantomData<fn(_: i128) -> i128>

impl PaddingBane for isize[src]

type Fields = PhantomData<fn(_: isize) -> isize>

impl PaddingBane for u8[src]

type Fields = PhantomData<fn(_: u8) -> u8>

impl PaddingBane for u16[src]

type Fields = PhantomData<fn(_: u16) -> u16>

impl PaddingBane for u32[src]

type Fields = PhantomData<fn(_: u32) -> u32>

impl PaddingBane for u64[src]

type Fields = PhantomData<fn(_: u64) -> u64>

impl PaddingBane for u128[src]

type Fields = PhantomData<fn(_: u128) -> u128>

impl PaddingBane for usize[src]

type Fields = PhantomData<fn(_: usize) -> usize>

impl<T> PaddingBane for *const T[src]

type Fields = PhantomData<fn(_: *const T) -> *const T>

impl<T> PaddingBane for *mut T[src]

type Fields = PhantomData<fn(_: *mut T) -> *mut T>

impl<T> PaddingBane for [T; 0][src]

type Fields = PhantomData<fn(_: [T; 0]) -> [T; 0]>

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

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

type Fields = T::Fields

impl<T> PaddingBane for [T; 2048] where
    T: PaddingBane
[src]

type Fields = T::Fields

impl<T> PaddingBane for [T; 4096] where
    T: PaddingBane
[src]

type Fields = T::Fields

impl<T> PaddingBane for [T; 8192] where
    T: PaddingBane
[src]

type Fields = T::Fields

impl<T> PaddingBane for [T; 16384] where
    T: PaddingBane
[src]

type Fields = T::Fields

impl<T> PaddingBane for [T; 32768] where
    T: PaddingBane
[src]

type Fields = T::Fields

impl<T> PaddingBane for [T; 65536] where
    T: PaddingBane
[src]

type Fields = T::Fields

Loading content...