Skip to main content

ZeroPodFixed

Trait ZeroPodFixed 

Source
pub trait ZeroPodFixed: ZeroPodSchema {
    type Zc: Copy;

    const SIZE: usize;

    // Required methods
    fn from_bytes(data: &[u8]) -> Result<&Self::Zc, ZeroPodError>;
    fn from_bytes_mut(data: &mut [u8]) -> Result<&mut Self::Zc, ZeroPodError>;
    fn validate(data: &[u8]) -> Result<(), ZeroPodError>;

    // Provided methods
    unsafe fn from_bytes_unchecked(data: &[u8]) -> &Self::Zc { ... }
    unsafe fn from_bytes_mut_unchecked(data: &mut [u8]) -> &mut Self::Zc { ... }
}
Expand description

Zero-copy access for fixed-size types (all fields are Copy, no dynamic tails).

Required Associated Constants§

Required Associated Types§

Required Methods§

Source

fn from_bytes(data: &[u8]) -> Result<&Self::Zc, ZeroPodError>

Source

fn from_bytes_mut(data: &mut [u8]) -> Result<&mut Self::Zc, ZeroPodError>

Source

fn validate(data: &[u8]) -> Result<(), ZeroPodError>

Provided Methods§

Source

unsafe fn from_bytes_unchecked(data: &[u8]) -> &Self::Zc

§Safety

Caller must ensure data is at least Self::SIZE bytes and contains valid content.

Source

unsafe fn from_bytes_mut_unchecked(data: &mut [u8]) -> &mut Self::Zc

§Safety

Caller must ensure data is at least Self::SIZE bytes and contains valid content.

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.

Implementors§