This crate provides proc macros for use with enumkit:
#[derive(EnumValues)]– Adds avalues()method that returns all unit enum variants.#[derive(EnumMapping)]– Generates a struct mapping enum variants to values in a static array.
These macros only work with enums composed entirely of unit variants (i.e., variants with no associated data).
Add to your Cargo.toml:
[dependencies]
enumkit-derive = "<version>"Then derive the macros on your enum:
use enumkit::{EnumValues, EnumMapping};
#[derive(EnumValues, EnumMapping)]
enum Mode {
Fast,
Slow,
Sleep,
}See enumkit for the trait definitions and runtime behavior.
- These macros panic at compile time if used on non-unit enums.
- Serialization support via
serdeis opt-in via feature flags inenumkit.
MIT or Apache-2.0