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§
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§
Sourceunsafe fn from_bytes_unchecked(data: &[u8]) -> &Self::Zc
unsafe fn from_bytes_unchecked(data: &[u8]) -> &Self::Zc
§Safety
Caller must ensure data is at least Self::SIZE bytes and contains
valid content.
Sourceunsafe fn from_bytes_mut_unchecked(data: &mut [u8]) -> &mut Self::Zc
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.