#frozen #cache #map #arena #borrow

lurk-elsa

Rust 中只能追加集合,其中条目的借用可以超过插入

2 个版本

0.1.1 2023 年 12 月 15 日
0.1.0 2023 年 12 月 15 日

#570数据结构


用于 lurk

MIT/Apache

105KB
2K SLoC

lurk-elsa

lurk-rs Current Version License: MIT/Apache-2.0

[!IMPORTANT] 该仓库是 https://github.com/Manishearth/elsa 的分支。它支持一个 crate 发布,只有当原始版本是 FrozenIndexMapFrozenIndexSet 数据结构的同步变体时才增加,这些数据结构用于 Lurk。此功能已在 https://github.com/Manishearth/elsa/pull/67 中提交给上游,如果它合并,则此 crate 应该变得过时。

🎵 我从未被不可变性困扰过 🎶

此 crate 提供各种 "frozen" 集合。

这些是只能追加的集合,其中可以保留条目的引用,即使跨插入也是如此。这是安全的,因为这些集合只支持存储某种间接表示后面的数据 -- 即 StringVec<T>Box<T> 等,并且它们只提供分配后面的数据的引用(分别返回 &str&[T]&T

典型用例是拥有全局字符串或其他数据缓存,其余程序从该缓存借用。

运行所有示例

cargo test --examples --features indexmap

依赖关系

~175KB