Macro defmt::bitflags

bitflags!() { /* proc-macro */ }
Expand description

Generates a bitflags structure that can be formatted with defmt.

This macro is a wrapper around the bitflags! crate, and provides an (almost) identical interface. Refer to its documentation for an explanation of the syntax.

§Limitations

This macro only supports bitflags structs represented as one of Rust’s built-in unsigned integer types (u8, u16, u32, u64, or u128). Custom types are not supported. This restriction is necessary to support defmt’s efficient encoding.

§Examples

The example from the bitflags crate works as-is:

defmt::bitflags! {
    struct Flags: u32 {
        const A = 0b00000001;
        const B = 0b00000010;
        const C = 0b00000100;
        const ABC = Self::A.bits | Self::B.bits | Self::C.bits;
    }
}

defmt::info!("Flags::ABC: {}", Flags::ABC);
defmt::info!("Flags::empty(): {}", Flags::empty());