7 releases
Uses new Rust 2024
| 0.1.6 | Jul 5, 2025 |
|---|---|
| 0.1.5 | Jul 5, 2025 |
#548 in Procedural macros
10KB
181 lines
enum_builder
Simple macros that allow building enum types from variants that can be defined in multiple dispersed files in the crate.
Example
main.rs
mod animals;
use animals::*;
#[enum_builder]
enum Animal {}
// expanded result
// enum Animal {
// Dog(Dog),
// Cow(Cow),
// Fish(Fish),
// }
animals.rs
#[enum_builder_variant(Animal)]
struct Dog {}
#[enum_builder_variant(Animal)]
struct Cow {}
#[enum_builder_variant(Animal)]
struct Fish {}
Tips
It can be very useful to combine this crate with the enum_dispatch crate, to allow for a simple "plugin" architecture without the overhead of dynamic dispatch. When doing this, take care to note that the order of macros is important, as enum_builder must be used before enum_dispatch.
Example
#[enum_builder]
#[enum_dispatch]
enum Animal {}
Dependencies
~0.3–2.4MB
~46K SLoC