Бітові прапорці (крейт bitflags)
Крейт bitflags
корисний для роботи з бітовими флагами.
use bitflags::bitflags; bitflags! { /// Прапорці з регістру прапорів UART. #[repr(transparent)] #[derive(Copy, Clone, Debug, Eq, PartialEq)] struct Flags: u16 { /// Очистити для відправки. const CTS = 1 << 0; /// Набір даних готовий. const DSR = 1 << 1; /// Визначення носія даних. const DCD = 1 << 2; /// UART зайнятий передачею даних. const BUSY = 1 << 3; /// FIFO отримання порожній. const RXFE = 1 << 4; /// FIFO передачі заповнено. const TXFF = 1 << 5; /// FIFO отримання заповнено. const RXFF = 1 << 6; /// FIFO передачі порожній. const TXFE = 1 << 7; /// Індикатор кільця. const RI = 1 << 8; } }
- Макрос
bitflags!
створює новий тип, щось на кшталтFlags(u16)
разом із купою реалізацій методів для отримання та встановлення прапорів.