6 个版本
0.3.0 | 2023年11月24日 |
---|---|
0.2.1 | 2022年9月8日 |
0.2.0 | 2021年12月22日 |
0.1.2 | 2020年6月4日 |
0.1.0 | 2020年1月18日 |
1821 在 数据结构 中
175 每月下载量
15KB
328 行
ttmap (简单类型映射)
简单的类型映射实现
实现使用类型擦除值,以类型作为索引。由于 TypeId
的限制,仅支持无非静态引用的类型。(未来可以更改)
类型擦除
每个插入的值都存储在堆上,使用类型擦除指针,使用类型作为键。当检索值时,使用类型信息作为键,并将指针转换为相应的类型。这是安全的,因为 Rust 允许在指针实际上指向类型的情况下(在这种情况下是)进行指针的来回转换。
允许静态引用,但在当前实现中存储在堆上。未来可能会更改。
哈希实现
该映射使用简化的 Hasher
,它依赖于 TypeId
仅生成唯一值的事实。实际上没有底层的哈希,类型的 id 就是直接返回的。
要求
- 启用全局分配器的
alloc