10 releases
| 0.1.10 | Nov 22, 2025 |
|---|---|
| 0.1.9 | Aug 29, 2025 |
| 0.1.8 | Jul 19, 2025 |
| 0.1.6 | Jun 24, 2024 |
#134 in Data structures
221,685 downloads per month
105KB
3K
SLoC
The library provides Ordinal trait to map types to usize values,
proc-macro to derive Ordinal trait for structs and enums,
and map and set implementations
that use these types as keys efficiently.
Example
use ordinal_map::map::total::OrdinalTotalMap;
#[derive(ordinal_map::Ordinal)]
enum ErrorCategory {
Network,
Disk,
Logic,
}
fn classify_error(error: &str) -> ErrorCategory {
// ...
}
let mut error_counts: OrdinalTotalMap<ErrorCategory, u64> = OrdinalTotalMap::default();
for error in &errors {
let category = classify_error(error);
error_counts[&category] += 1;
}
Ordinal types and collections
The library provides Ordinal trait to map types to usize values,
proc-macro to derive Ordinal trait for structs and enums,
and map and set implementations
that use these types as keys efficiently.
Example
use ordinal_map::map::total::OrdinalTotalMap;
#[derive(ordinal_map::Ordinal)]
enum ErrorCategory {
Network,
Disk,
Logic,
}
fn classify_error(error: &str) -> ErrorCategory {
// ...
}
let mut error_counts: OrdinalTotalMap<ErrorCategory, u64> = OrdinalTotalMap::default();
for error in &errors {
let category = classify_error(error);
error_counts[category] += 1;
}
Dependencies
~130–530KB
~13K SLoC