8 个版本
| 新 0.1.7 | 2024 年 8 月 21 日 |
|---|---|
| 0.1.6 | 2024 年 7 月 9 日 |
| 0.1.4 | 2024 年 6 月 14 日 |
#481 在 数据结构
136 每月下载量
145KB
3K SLoC
二维平面
模型连续、无限大的(在整数和存储限制内)2D 数据结构。此 crate 的目的是提供一种在特定场景下比 HashMap<(i32, i32), T> 更快的结构,并提供更好的 API 来处理 2D 平面。
此 crate 将始终提供 2D 数据结构。类型 Plane<T> 是实现 Default 特性的各种数据类型的容器。您可以使用 Option<T> 来存储可选初始化的数据。
除了 std 库之外的依赖项,不使用其他依赖项,除非依赖于功能标志隐藏的依赖项。
内存布局
使用几乎完全相同的 grid crate 来使用 Grid<T> 类型。在 Vec<T> 中存储平面的密集块(由 grid crate 的副本提供的 Grid<T>)和 HashMap<(i32, i32), T> 来存储超出 Grid<T> 边界的单元格。与 HashMap<(i32, i32), T> 不同,这里进行了两次分配。
lib.rs:
二维平面
模型连续、无限大的(在整数和存储限制内)2D 数据结构。此 crate 的目的是提供一种在特定场景下比 HashMap<(i32, i32), T> 更快的结构,并提供更好的 API 来处理 2D 平面。
此 crate 将始终提供 2D 数据结构。类型 Plane<T> 是实现 Default 特性的各种数据类型的容器。您可以使用 Option<T> 来存储可选初始化的数据。
除了 std 库之外的依赖项,不使用其他依赖项,除非依赖于功能标志隐藏的依赖项。
内存布局
使用几乎完全相同的 grid crate 来使用 Grid<T> 类型。在 Vec<T> 中存储平面的密集块(由 grid crate 的副本提供的 Grid<T>)和 HashMap<(i32, i32), T> 来存储超出 Grid<T> 边界的单元格。与 HashMap<(i32, i32), T> 不同,这里进行了两次分配。
依赖关系
~0–1.3MB
~22K SLoC