Bitflags
El crate bitflags
resulta útil para trabajar con bitflags.
use bitflags::bitflags; bitflags! { /// Marcas del registro de marcas de UART. #[repr(transparent)] #[derive(Copy, Clone, Debug, Eq, PartialEq)] struct Flags: u16 { /// Borra para enviar. const CTS = 1 << 0; /// Conjunto de datos listo. const DSR = 1 << 1; /// Detección del portador de datos. const DCD = 1 << 2; /// UART está transmitiendo datos. const BUSY = 1 << 3; /// El FIFO de recepción está vacío const RXFE = 1 << 4; /// El FIFO de transmisión está completo. const TXFF = 1 << 5; /// El FIFO de recepción está completo. const RXFF = 1 << 6; /// El FIFO de transmisión está vacío. const TXFE = 1 << 7; /// Indicador de anillo. const RI = 1 << 8; } }
- La macro
bitflags!
crea un newtype, comoFlags(u16)
, junto con un montón de implementaciones de métodos para obtener y definir flags (banderas).