macro_rules! enum_wrapper {
    (@add_enum_variant $name: ident, $enum_variant: ident : $enum_value: expr, $($tts:tt)*) => { ... };
    (@add_enum_variant $name: ident, $enum_variant: ident : $enum_value: path, $($tts:tt)*) => { ... };
    (@add_enum_variant $name: ident, $(,)*) => { ... };
    (@add_debug_variant $self:ident, $f:ident, $enum_variant: ident : $enum_value: path, $($tts:tt)*) => { ... };
    (@add_debug_variant $self:ident, $f:ident, $enum_variant: ident : $enum_value: expr, $($tts:tt)*) => { ... };
    (@add_debug_variant $self:ident, $f:ident, $(,)*) => { ... };
    ($name: ident, $repr_type: ty, $($tts:tt)+) => { ... };
}
Expand description

Wrap the given key: value pairs to struct with constants.

The following traits will be implemented automatically:

Examples

enum_wrapper!(
   PositionState,
   spa_sys::spa_io_position_state,
   STOPPED: spa_sys::SPA_IO_POSITION_STATE_STOPPED,
   STARTING: spa_sys::SPA_IO_POSITION_STATE_STARTING,
   RUNNING: spa_sys::SPA_IO_POSITION_STATE_RUNNING,
);

Arguments

  • name - struct name
  • repr_type - enum discriminator type
  • enum_variant:enum_value - enum variant name and discriminator value
  • ...