[−][src]Macro encap_enum::encap_enum
macro_rules! encap_enum { ( $(#[$outer_comment:meta])* $outer_vis:vis enum $name:ident : $inner_vis:vis $type:ty { $( $val_name:ident = $( $li:literal )? $( $id:ident )? $(| $bitor_li:literal )* $(| $bitor_id:ident )* $(+ $add_li:literal )* $(+ $add_id:ident )* $(& $bitand_li:literal)* $(& $bitand_id:ident)* $(^ $bitxor_li:literal)* $(^ $bitxor_id:ident)* $(/ $div_li:literal )* $(/ $div_id:ident )* $(* $mul_li:literal )* $(* $mul_id:ident )* $(<< $shl_li:literal )* $(<< $shl_id:ident )* $(>> $shr_li:literal )* $(>> $shr_id:ident )* $(- $sub_li:literal )* $(- $sub_id:ident )* ,$(#[$comment:meta])* )+ } ) => { ... }; ( $(#[$outer_comment:meta])* $outer_vis:vis enum $name:ident { $( $val_name:ident = $( $li:literal )? $( $id:ident )? $(| $bitor_li:literal )* $(| $bitor_id:ident )* $(+ $add_li:literal )* $(+ $add_id:ident )* $(& $bitand_li:literal)* $(& $bitand_id:ident)* $(^ $bitxor_li:literal)* $(^ $bitxor_id:ident)* $(/ $div_li:literal )* $(/ $div_id:ident )* $(* $mul_li:literal )* $(* $mul_id:ident )* $(<< $shl_li:literal )* $(<< $shl_id:ident )* $(>> $shr_li:literal )* $(>> $shr_id:ident )* $(- $sub_li:literal )* $(- $sub_id:ident )* ,$(#[$comment:meta])* )+ } ) => { ... }; ( $(#[$outer_comment:meta])* $outer_vis:vis enum $name:ident { $($val_name:ident,$(#[$comment:meta])*)+ } ) => { ... }; ( $(#[$outer_comment:meta])* $outer_vis:vis enum $name:ident : $inner_vis:vis $type:ty{ $($val_name:ident,$(#[$comment:meta])*)+ } ) => { ... }; }
A macro for bit flags and enumerations.
See crate level docs for full documentation.
Example
#[macro_use] extern crate encap_enum; encap_enum!{ enum Flags{ A = 0x00, B = 0x01, C = 0x02, } } fn main() { println!("A = {}", Flags::A.0); }