Skip to main content

api_id_enum

Macro api_id_enum 

Source
macro_rules! api_id_enum {
    (
        $name:ident {
            $(
                $(#[$variant_meta:meta])*
                $variant:ident = $value:literal
            ),+ $(,)?
        }
    ) => { ... };
    (
        $(#[$meta:meta])*
        $name:ident {
            $(
                $(#[$variant_meta:meta])*
                $variant:ident = $value:literal
            ),+ $(,)?
        }
    ) => { ... };
    (
        $(#[$meta:meta])*
        $vis:vis $name:ident {
            $(
                $(#[$variant_meta:meta])*
                $variant:ident = $value:literal
            ),+ $(,)?
        }
    ) => { ... };
    (
        @impl
        $(#[$meta:meta])*
        $vis:vis $name:ident {
            $(
                $(#[$variant_meta:meta])*
                $variant:ident = $value:literal
            ),+ $(,)?
        }
    ) => { ... };
}
Expand description

Declare an i32-backed enum with serde, From<i32>, and TryFrom<i32>.

Default form makes the enum pub: api_id_enum! { Name { A = 1, B = 2 } }

You can also pass attributes and visibility: api_id_enum! { #[non_exhaustive] pub(crate) Name { A = 1 } }