Skip to main content

BitwiseAncillaryData

Trait BitwiseAncillaryData 

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§

§

impl BitwiseAncillaryData for f32

§

impl BitwiseAncillaryData for f64

§

impl BitwiseAncillaryData for i8

§

impl BitwiseAncillaryData for i16

§

impl BitwiseAncillaryData for i32

§

impl BitwiseAncillaryData for i64

§

impl BitwiseAncillaryData for i128

§

impl BitwiseAncillaryData for isize

§

impl BitwiseAncillaryData for u8

§

impl BitwiseAncillaryData for u16

§

impl BitwiseAncillaryData for u32

§

impl BitwiseAncillaryData for u64

§

impl BitwiseAncillaryData for u128

§

impl BitwiseAncillaryData for ()

§

impl BitwiseAncillaryData for usize

§

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

Implementors§