1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
//! This module shows an example of code generated by the macro. **IT MUST NOT BE USED OUTSIDE THIS
//! CRATE**.
//!
//! Usually, when you call the `bitflags!` macro, only the `Flags` type would be visible. In this
//! example, the `Field0`, `Iter`, and `IterRaw` types are also exposed so that you can explore
//! their APIs. The `Field0` type can be accessed as `self.0` on an instance of `Flags`.
__declare_public_bitflags! {
/// This is the same `Flags` struct defined in the [crate level example](../index.html#example).
/// Note that this struct is just for documentation purposes only, it must not be used outside
/// this crate.
pub struct Flags;
}
__declare_internal_bitflags! {
pub struct Field0: u32;
pub struct Iter;
pub struct IterRaw;
}
__impl_internal_bitflags! {
Field0: u32, Flags, Iter, IterRaw {
A;
B;
C;
ABC;
}
}
__impl_public_bitflags! {
Flags: u32, Field0, Iter, IterRaw {
A = 0b00000001;
B = 0b00000010;
C = 0b00000100;
ABC = Self::A.bits() | Self::B.bits() | Self::C.bits();
}
}