repr-discriminant

Crates.iorepr-discriminant
lib.rsrepr-discriminant
version3.0.1
created_at2025-07-16 14:20:37.837703+00
updated_at2025-11-14 07:44:16.205333+00
descriptionTrait to retrieve the discriminant of an enum variant with a repr(T) at runtime
homepage
repositoryhttps://github.com/PaulmannLighting/repr-discriminant
max_upload_size
id1755557
size7,584
Richard Neumann (neumann-paulmann)

documentation

https://docs.rs/repr-discriminant

README

repr-discriminant

Trait to retrieve an enum's discriminant.

Usage

The feature derive is recommended to automatically implement the trait for your enums.

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.repr_discriminant(), 1);
    assert_eq!(bar.repr_discriminant(), 2);
    assert_eq!(spam.repr_discriminant(), 3);
}
Commit count: 0

cargo fmt