enum_variant_accessors
Derive macros that generate ergonomic variant accessors for enums.
#[derive(EnumIsVariant)]— addsis_<variant>() -> boolmethods.#[derive(EnumAsVariant)]— adds borrowed accessors:as_<variant>(&self) -> Option<<borrowed variant data>>as_<variant>_mut(&mut self) -> Option<<borrowed variant data (mutable)>>
Supported variants
- Unit variants (
VariantorVariant()):- Borrowed data type:
() - Accessors return
Option<()>
- Borrowed data type:
- Single-field tuple variants (
Variant(T)):- Borrowed data type:
&T/&mut T - Accessors return
Option<&T>/Option<&mut T>
- Borrowed data type:
- Multi-field tuple variants (
Variant(T1, T2, ...)):- Borrowed data type:
(&T1, &T2, ...)/(&mut T1, &mut T2, ...) - Accessors return
Option<(&T1, &T2, ...)>/Option<(&mut T1, &mut T2, ...)>
- Borrowed data type:
Not supported: named-field (struct-like) variants.
Examples
use ;