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);
}