Crates.io | explicit-discriminant |
lib.rs | explicit-discriminant |
version | 0.1.4 |
source | src |
created_at | 2023-08-16 16:12:49.836243 |
updated_at | 2023-08-16 21:42:53.501575 |
description | Macro for enforcing enum discriminants |
homepage | https://github.com/rcrisanti/explicit-discriminant |
repository | https://github.com/rcrisanti/explicit-discriminant |
max_upload_size | |
id | 946109 |
size | 11,619 |
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,
}