4 releases
0.1.4 | Aug 16, 2023 |
---|---|
0.1.3 | Aug 16, 2023 |
0.1.2 | Aug 16, 2023 |
0.1.0 | Aug 16, 2023 |
#1243 in Data structures
590 downloads per month
8KB
114 lines
explicit-discriminant
This crate enforces explicit discriminants of an enum.
use explicit_discriminant::ExplicitDiscriminant;
#[derive(ExplicitDiscriminant)]
enum MyEnum {
One = 1,
Two = 2,
Three, // will not compile
Four = 4
}
You can also optionally add patterns that will enforce which discriminant values are allowed.
use explicit_discriminant::ExplicitDiscriminant;
#[derive(ExplicitDiscriminant)]
#[pattern(2..=3 | 12..)]
#[pattern(9 | ..-3)]
enum MyEnum {
MinusFour = -4,
One = 1, // error here, since not in any of the patterns
Two = 2,
Three = 3,
Nine = 9,
Ten = 10, // error here, since not in any of the patterns
Twelve = 12,
OneHundred = 100,
}
Dependencies
~295–750KB
~17K SLoC