Files
binding/examples/flags.rs
Myrddin Dundragon a370d13f7a Adjusted project data.
Properly pointed to the repository location.

Changed the rust edition.
2025-10-14 20:45:16 -04:00

33 lines
769 B
Rust

// SPDX-License-Identifier: Apache-2.0
// Sealed with Magistamp.
use binding::c_flags;
c_flags! {
/// A sample of flags useful for the EvDev library.
flags ReadFlags: u32
{
/// Process data in sync mode.
const SYNC = 0b000000000000000000000001,
/// Process data in normal mode.
const NORMAL = 0b000000000000000000000010,
/// Pretend the next event is a SYN_DROPPED and require
/// the caller to sync.
const FORCE_SYNC = 0b000000000000000000000100,
/// The fd is not in O_NONBLOCK and a read may block.
const BLOCKING = 0b000000000000000000001000
}
}
pub fn main()
{
let flag: ReadFlags;
flag = SYNC | NORMAL;
println!("Flag: {:#010b}", flag.get_bits());
println!("Flag: {}", flag);
}