Bitflags
O crate bitflags
é útil para trabalhar com bitflags.
use bitflags::bitflags; bitflags! { /// _Flags_ do registrador de _flags_ do UART. #[repr(transparent)] #[derive(Copy, Clone, Debug, Eq, PartialEq)] struct Flags: u16 { /// Limpar para enviar. const CTS = 1 << 0; /// Dados prontos para envio. const DSR = 1 << 1; /// Dados detectados pelo receptor. const DCD = 1 << 2; /// UART ocupado transmitindo dados. const BUSY = 1 << 3; /// O FIFO de recebimento está vazio. const RXFE = 1 << 4; /// O FIFO de transmissão está cheio. const TXFF = 1 << 5; /// O FIFO de recebimento está cheio. const RXFF = 1 << 6; /// O FIFO de transmissão está vazio. const TXFE = 1 << 7; /// Indicador de anel. const RI = 1 << 8; } }
- A macro
bitflags!
cria um newtype algo comoFlags(u16)
, junto com um monte de implementações de método para obter e setar flags.