Skip to main content

define_flags

Macro define_flags 

Source
macro_rules! define_flags {
    (
        $name:ident: $base:ty {
            $($flag:ident = $bit:expr),* $(,)?
        }
    ) => { ... };
}
Expand description

Macro to define a typed flag set with named flags

Note: Requires the paste crate for generating setter method names.

§Examples

use synapse_primitives::define_flags;

define_flags! {
    RequestFlags: Flags64 {
        REQUIRE_AUTH = 0,
        IDEMPOTENT = 1,
        ALLOW_BATCH = 2,
        COMPRESS_RESPONSE = 3,
    }
}

let mut flags = RequestFlags::new();
flags.set_require_auth(true);
flags.set_idempotent(true);

assert!(flags.require_auth());
assert!(flags.idempotent());
assert!(!flags.allow_batch());