repr-discriminant-derive

Crates.iorepr-discriminant-derive
lib.rsrepr-discriminant-derive
version2.0.0
created_at2025-11-04 13:50:56.429311+00
updated_at2025-11-14 07:32:10.933641+00
descriptionDerive macro to generate a method to access the discriminant of an enum variant with a repr(T) at runtime
homepage
repositoryhttps://github.com/PaulmannLighting/repr-discriminant
max_upload_size
id1916279
size8,924
Richard Neumann (neumann-paulmann)

documentation

https://docs.rs/repr-discriminant-derive

README

repr-discriminant-derive

Derive macro to add primitive representations to enums and allow parsing their discriminant.

Requirements

Requires repr-discriminant to be available in the user code.

Usage

use repr_discriminant::ReprDiscriminant;

#[repr(u8)]
#[derive(ReprDiscriminant)]
enum TestEnum {
    Foo = 1,
    Bar(usize, f64) = 2,
    Spam { x: i32, y: i32 } = 3,
}

fn main() {
    let foo = TestEnum::Foo;
    let bar = TestEnum::Bar(4, 5.1);
    let spam = TestEnum::Spam { x: -32, y: 1337 };

    assert_eq!(foo.discriminant(), 1);
    assert_eq!(bar.discriminant(), 2);
    assert_eq!(spam.discriminant(), 3);
}
Commit count: 0

cargo fmt