Macro bitmask::bitmask[][src]

macro_rules! bitmask {
    (
        $(#[$st_attr: meta])* mask $st_name: ident : $T: tt where
        $(#[$en_attr: meta])* flags $en_name: ident { $($token: tt)+ }
    ) => { ... };
    (
        st_meta: [ $(#[$st_attr: meta])* ],
        st_name: $st_name: ident,
        mask_type: $T: tt,
        en_meta: [ $(#[$en_attr: meta])* ],
        en_name: $en_name: ident,
        flags: [
            $(
                meta: [ $(#[$flag_attr: meta])* ]
                flag: $flag_name: ident = $flag_value: expr;
            )*
            [ $(#[$prev_attr: meta])* ]
        ],
        #[$next_attr: meta] $($token: tt)*
    ) => { ... };
    (
        st_meta: [ $(#[$st_attr: meta])* ],
        st_name: $st_name: ident,
        mask_type: $T: tt,
        en_meta: [ $(#[$en_attr: meta])* ],
        en_name: $en_name: ident,
        flags: [
            $(
                meta: [ $(#[$flag_attr: meta])* ]
                flag: $flag_name: ident = $flag_value: expr;
            )*
            [ $(#[$next_attr: meta])* ]
        ],
        $next_name: ident = $next_value: expr, $($token: tt)*
    ) => { ... };
    (
        st_meta: [ $(#[$st_attr: meta])* ],
        st_name: $st_name: ident,
        mask_type: $T: tt,
        en_meta: [ $(#[$en_attr: meta])* ],
        en_name: $en_name: ident,
        flags: [
            $(
                meta: [ $(#[$flag_attr: meta])* ]
                flag: $flag_name: ident = $flag_value: expr;
            )*
            [ $(#[$next_attr: meta])* ]
        ],
        $next_name: ident = $next_value: expr
    ) => { ... };
    (
        st_meta: [ $(#[$st_attr: meta])* ],
        st_name: $st_name: ident,
        mask_type: $T: tt,
        en_meta: [ $(#[$en_attr: meta])* ],
        en_name: $en_name: ident,
        flags: [
            $(
                meta: [ $(#[$flag_attr: meta])* ]
                flag: $flag_name: ident = $flag_value: expr;
            )+
            []
        ],
    ) => { ... };
    (
        $(#[$st_attr: meta])* pub mask $st_name: ident : $T: tt where
        $(#[$en_attr: meta])* flags $en_name: ident { $($token: tt)+ }
    ) => { ... };
    (
        pub
        st_meta: [ $(#[$st_attr: meta])* ],
        st_name: $st_name: ident,
        mask_type: $T: tt,
        en_meta: [ $(#[$en_attr: meta])* ],
        en_name: $en_name: ident,
        flags: [
            $(
                meta: [ $(#[$flag_attr: meta])* ]
                flag: $flag_name: ident = $flag_value: expr;
            )*
            [ $(#[$prev_attr: meta])* ]
        ],
        #[$next_attr: meta] $($token: tt)*
    ) => { ... };
    (
        pub
        st_meta: [ $(#[$st_attr: meta])* ],
        st_name: $st_name: ident,
        mask_type: $T: tt,
        en_meta: [ $(#[$en_attr: meta])* ],
        en_name: $en_name: ident,
        flags: [
            $(
                meta: [ $(#[$flag_attr: meta])* ]
                flag: $flag_name: ident = $flag_value: expr;
            )*
            [ $(#[$next_attr: meta])* ]
        ],
        $next_name: ident = $next_value: expr, $($token: tt)*
    ) => { ... };
    (
        pub
        st_meta: [ $(#[$st_attr: meta])* ],
        st_name: $st_name: ident,
        mask_type: $T: tt,
        en_meta: [ $(#[$en_attr: meta])* ],
        en_name: $en_name: ident,
        flags: [
            $(
                meta: [ $(#[$flag_attr: meta])* ]
                flag: $flag_name: ident = $flag_value: expr;
            )*
            [ $(#[$next_attr: meta])* ]
        ],
        $next_name: ident = $next_value: expr
    ) => { ... };
    (
        pub
        st_meta: [ $(#[$st_attr: meta])* ],
        st_name: $st_name: ident,
        mask_type: $T: tt,
        en_meta: [ $(#[$en_attr: meta])* ],
        en_name: $en_name: ident,
        flags: [
            $(
                meta: [ $(#[$flag_attr: meta])* ]
                flag: $flag_name: ident = $flag_value: expr;
            )+
            []
        ],
    ) => { ... };
    (@IMPL $st_name: ident $T: tt $en_name: ident, {
        $($flag_name: ident = $flag_val: expr),+
    }) => { ... };
    (@IMPL_BITOR $($target: ty, $other: ty, $st_name: ident);*;) => { ... };
    (@IMPL_BITAND $($target: ty, $other: ty, $st_name: ident);*;) => { ... };
    (@IMPL_BITXOR $($target: ty, $other: ty, $st_name: ident);*;) => { ... };
    (@IMPL_BITOR_ASSIGN $($target: ty, $other: ty);*;) => { ... };
    (@IMPL_BITAND_ASSIGN $($target: ty, $other: ty);*;) => { ... };
    (@IMPL_BITXOR_ASSIGN $($target: ty, $other: ty);*;) => { ... };
    (@IMPL_NOT $($target: ty, $st_name: ident);*;) => { ... };
}

The macro that generates a bitmask and it’s associated bit flags.

See the crate level docs for more info and examples.

Methods

Operators

Misc