Sha256: 29dd7b845345a103ca31e91b579aeb01fb74935b8223c29184eb42223edadb65

Contents?: true

Size: 644 Bytes

Versions: 23

Compression:

Stored size: 644 Bytes

Contents

//! An example of implementing the `BitFlags` trait manually for a flags type.

use std::str;

use bitflags::bitflags;

// Define a flags type outside of the `bitflags` macro as a newtype
// It can accept custom derives for libaries `bitflags` doesn't support natively
#[derive(zerocopy::AsBytes, zerocopy::FromBytes)]
#[repr(transparent)]
pub struct ManualFlags(u32);

// Next: use `impl Flags` instead of `struct Flags`
bitflags! {
    impl ManualFlags: u32 {
        const A = 0b00000001;
        const B = 0b00000010;
        const C = 0b00000100;
        const ABC = Self::A.bits() | Self::B.bits() | Self::C.bits();
    }
}

fn main() {}

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
wasmtime-23.0.2 ./ext/cargo-vendor/bitflags-2.4.1/examples/custom_derive.rs
wasmtime-22.0.0 ./ext/cargo-vendor/bitflags-2.4.1/examples/custom_derive.rs
wasmtime-21.0.1 ./ext/cargo-vendor/bitflags-2.4.1/examples/custom_derive.rs
wasmtime-20.0.2 ./ext/cargo-vendor/bitflags-2.4.1/examples/custom_derive.rs
wasmtime-20.0.0 ./ext/cargo-vendor/bitflags-2.4.1/examples/custom_derive.rs
wasmtime-18.0.3 ./ext/cargo-vendor/bitflags-2.4.1/examples/custom_derive.rs
wasmtime-17.0.1 ./ext/cargo-vendor/bitflags-2.4.1/examples/custom_derive.rs
wasmtime-17.0.0 ./ext/cargo-vendor/bitflags-2.4.1/examples/custom_derive.rs
wasmtime-16.0.0 ./ext/cargo-vendor/bitflags-2.4.1/examples/custom_derive.rs
wasmtime-15.0.1 ./ext/cargo-vendor/bitflags-2.4.1/examples/custom_derive.rs
wasmtime-15.0.0 ./ext/cargo-vendor/bitflags-2.4.1/examples/custom_derive.rs
wasmtime-14.0.4 ./ext/cargo-vendor/bitflags-2.4.1/examples/custom_derive.rs
wasmtime-14.0.3 ./ext/cargo-vendor/bitflags-2.4.1/examples/custom_derive.rs
wasmtime-14.0.1 ./ext/cargo-vendor/bitflags-2.4.1/examples/custom_derive.rs
wasmtime-14.0.0 ./ext/cargo-vendor/bitflags-2.4.1/examples/custom_derive.rs
wasmtime-13.0.0 ./ext/cargo-vendor/bitflags-2.4.0/examples/custom_derive.rs
wasmtime-12.0.1 ./ext/cargo-vendor/bitflags-2.4.0/examples/custom_derive.rs
wasmtime-12.0.0 ./ext/cargo-vendor/bitflags-2.4.0/examples/custom_derive.rs
wasmtime-11.0.0 ./ext/cargo-vendor/bitflags-2.4.0/examples/custom_derive.rs
wasmtime-10.0.1 ./ext/cargo-vendor/bitflags-2.4.0/examples/custom_derive.rs