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 } }