#proc-macro #unit-variant #derive #enums

macro enum-unit

Generates unit-variant enums from existing enums

13 releases

Uses new Rust 2024

0.2.5 Jul 26, 2025
0.2.4 Jul 26, 2025
0.2.3 May 7, 2025
0.2.0 Mar 29, 2025
0.1.4 Dec 27, 2024

#220 in #derive

43 downloads per month
Used in wopt

MIT license

9KB
141 lines

enum-unit

Crate

Description

Generates unit-variant enums from existing enums.

Example

use enum_unit::*;

#[derive(EnumUnit)]
enum Example {
    A(i16),
    B { id: u8 },
}

fn main() {
    let a = Example::A(-420);
    assert_eq!(ExampleUnit::A, a.into());

    let b = Example::B { id: 69 };
    assert_eq!(ExampleUnit::B, b.into());
}

Optional Features

Name Description
bitflags Units have bitflag functionality.
serde Units implement Serialize and Deserialize.
full bitflags + serde

Dependencies

~0.6–1.1MB
~22K SLoC