enumkit-derive

Crates.ioenumkit-derive
lib.rsenumkit-derive
version0.0.0
created_at2025-07-09 19:44:53.914216+00
updated_at2025-07-09 19:44:53.914216+00
descriptionDerive macros for enumkit.
homepagehttps://github.com/veggiebob/enumkit
repositoryhttps://github.com/veggiebob/enumkit
max_upload_size
id1745370
size10,381
Jacob Bowman (veggiebob)

documentation

README

enumkit-derive

This crate provides proc macros for use with enumkit:

  • #[derive(EnumValues)] – Adds a values() 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).


Usage

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.


Notes

  • These macros panic at compile time if used on non-unit enums.
  • Serialization support via serde is opt-in via feature flags in enumkit.

License

MIT or Apache-2.0

Commit count: 0

cargo fmt