c_enum

Macro c_enum 

Source
macro_rules! c_enum {
    [
        $( #[$meta:meta] )*
        $vis:vis enum $name:ident($repr_type:ty) {
            $(
                $( #[$variant_meta:meta] )*
                $variant_name:ident $( = $variant_value:expr )?
            ),*
            $(,)?
        }
    ] => { ... };
    [
        @variants
        default = $default_value:expr;
    ] => { ... };
    [
        @variants
        default = $default_value:expr;
        $( #[$current_meta:meta] )*
        $current_name:ident = $current_value:expr
        $(
            ,
            $( #[$rest_meta:meta] )*
            $rest_name:ident $( = $rest_value:expr )?
        )*
    ] => { ... };
    [
        @variants
        default = $default_value:expr;
        $( #[$current_meta:meta] )*
        $current_name:ident
        $(
            ,
            $( #[$rest_meta:meta] )*
            $rest_name:ident $( = $rest_value:expr )?
        )*
    ] => { ... };
}
Expand description

Define a struct that wraps an integer type and acts like a C-style enum.

The new struct will be a transparent newtype wrapper for the underlying integral type. It will have an associated constant for each variant listed in the definition, and it will implement CEnum and all its supertraits.

See crate documentation for examples.