ordinal-map 0.1.0

Ordinal trait to map values to integers and efficient maps and sets for such types
Documentation
ordinal-map-0.1.0 has been yanked.

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 {
// ...
#  ErrorCategory::Network
}

let mut error_counts: OrdinalTotalMap<ErrorCategory, u64> = OrdinalTotalMap::default();

# let errors = [""; 0];
for error in &errors {
let category = classify_error(error);
error_counts[category] += 1;
}