FlatValidate

Trait FlatValidate 

Source
pub unsafe trait FlatValidate: FlatUnsized {
    // Required method
    unsafe fn validate_unchecked(bytes: &[u8]) -> Result<(), Error>;

    // Provided methods
    unsafe fn validate_ptr(this: *const Self) -> Result<(), Error> { ... }
    fn validate(bytes: &[u8]) -> Result<(), Error> { ... }
    fn from_bytes(bytes: &[u8]) -> Result<&Self, Error> { ... }
    fn from_mut_bytes(bytes: &mut [u8]) -> Result<&mut Self, Error> { ... }
}
Expand description

Flat type runtime checking.

Required Methods§

Source

unsafe fn validate_unchecked(bytes: &[u8]) -> Result<(), Error>

Provided Methods§

Source

unsafe fn validate_ptr(this: *const Self) -> Result<(), Error>

Source

fn validate(bytes: &[u8]) -> Result<(), Error>

Check that memory contents of this is valid for Self.

Source

fn from_bytes(bytes: &[u8]) -> Result<&Self, Error>

Source

fn from_mut_bytes(bytes: &mut [u8]) -> Result<&mut Self, Error>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl FlatValidate for f32

Source§

impl FlatValidate for f64

Source§

impl FlatValidate for i8

Source§

impl FlatValidate for i16

Source§

impl FlatValidate for i32

Source§

impl FlatValidate for i64

Source§

impl FlatValidate for i128

Source§

impl FlatValidate for isize

Source§

impl FlatValidate for u8

Source§

impl FlatValidate for u16

Source§

impl FlatValidate for u32

Source§

impl FlatValidate for u64

Source§

impl FlatValidate for u128

Source§

impl FlatValidate for ()

Source§

impl FlatValidate for usize

Source§

impl<T: Flat> FlatValidate for PhantomData<T>

Source§

impl<T: Flat, const N: usize> FlatValidate for [T; N]

Source§

unsafe fn validate_unchecked(bytes: &[u8]) -> Result<(), Error>

Implementors§

Source§

impl<T, L> FlatValidate for FlatVec<T, L>
where T: Flat + Sized, L: Flat + Length,