An open API service indexing awesome lists of open source software.

https://github.com/stepancheg/ordinal-map

Map types to integers
https://github.com/stepancheg/ordinal-map

Last synced: about 1 year ago
JSON representation

Map types to integers

Awesome Lists containing this project

README

          

# `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

```rust
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 = OrdinalTotalMap::default();

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