Skip to main content

BitwiseAncillaryData

Trait BitwiseAncillaryData 

Source
pub trait BitwiseAncillaryData: Pod { }
Available on crate features io and ancillary and bytemuck only.
Expand description

Marker trait to enable automatic AncillaryData implementation via bytemuck.

Types that implement this trait (which requires bytemuck::Pod) will automatically implement AncillaryData using a simple byte-wise encoding/decoding.

§Example

use compio_io::ancillary::bytemuck_ext;

#[derive(Clone, Copy)]
#[repr(C)]
struct MyType {
    value: u32,
}

unsafe impl bytemuck_ext::Zeroable for MyType {}
unsafe impl bytemuck_ext::Pod for MyType {}
impl bytemuck_ext::BitwiseAncillaryData for MyType {}

// Now MyType automatically implements AncillaryData

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 BitwiseAncillaryData for f32

Source§

impl BitwiseAncillaryData for f64

Source§

impl BitwiseAncillaryData for i8

Source§

impl BitwiseAncillaryData for i16

Source§

impl BitwiseAncillaryData for i32

Source§

impl BitwiseAncillaryData for i64

Source§

impl BitwiseAncillaryData for i128

Source§

impl BitwiseAncillaryData for isize

Source§

impl BitwiseAncillaryData for u8

Source§

impl BitwiseAncillaryData for u16

Source§

impl BitwiseAncillaryData for u32

Source§

impl BitwiseAncillaryData for u64

Source§

impl BitwiseAncillaryData for u128

Source§

impl BitwiseAncillaryData for ()

Source§

impl BitwiseAncillaryData for usize

Source§

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

Implementors§