#ordinal #map #set-key #enums #set #integer #traits-structs

ordinal-map

将值映射到整数的序数特性和高效的映射和集合实现

6 个版本

0.1.6 2024年6月24日
0.1.5 2024年6月24日

827数据结构

MIT 许可证

98KB
3K SLoC

Ordinal 类型和集合

该库提供了 Ordinal 特性,用于将类型映射到 usize 值,进程宏用于为结构体和枚举推导 Ordinal 特性,以及使用这些类型作为键的高效的 mapset 实现方案。

示例

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;
}

lib.rs:

该库提供 Ordinal 特性,用于将类型映射到 usize 值,进程宏用于为结构体和枚举推导 Ordinal 特性,以及提供使用这些类型作为键的高效的 mapset 实现方案。

示例

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;
}

依赖关系

~250–700KB
~17K SLoC