| Crates.io | cenum-utils-derive |
| lib.rs | cenum-utils-derive |
| version | 0.2.0 |
| created_at | 2025-05-24 22:45:46.659503+00 |
| updated_at | 2025-05-28 13:46:42.225424+00 |
| description | Derive macros for cenum-utils |
| homepage | |
| repository | https://github.com/Josh194/ConstEnumUtils |
| max_upload_size | |
| id | 1687838 |
| size | 19,328 |
cenum_utils provides a minimal set of utilities for querying certain properties of enums in const contexts.
Currently, available features include:
use cenum_utils::*;
#[derive(ConstEnum)]
#[repr(u8)]
enum Enum {
X,
Y,
Z
}
fn test() {
assert_eq!(Enum::COUNT, 3);
assert_eq!(Enum::DISCRIMINANTS, &[0, 1, 2]);
assert_eq!(Enum::NAMES, &["X", "Y", "Z"])
}
const fn const_test() {
assert!(Enum::COUNT == 3);
static NAMES: &[u8] = &[b'X', b'Y', b'Z'];
let mut i = 0;
while i < Enum::COUNT {
assert!(Enum::DISCRIMINANTS[i] as usize == i);
assert!(Enum::NAMES[i].as_bytes()[0] == NAMES[i]);
i += 1;
}
}