6 个版本 (重大变更)
0.5.0 | 2023年10月31日 |
---|---|
0.4.0 | 2023年9月19日 |
0.3.0 | 2023年9月19日 |
0.2.1 | 2023年9月18日 |
0.1.0 | 2023年9月18日 |
#2655 in Rust 模式
每月下载量 49 次
20KB
324 行
LArc 库
LArc 是一个 Rust crate,它实现了灵活的智能指针 LArc
和 LWeak
,可以存储静态或带生命周期注解的引用或引用计数智能指针 (Arc
)。
LArc 库提供了一个智能指针 LArc
,能够无缝地处理静态和动态分配的数据。这种双重性使得对可能在不同状态之间转换的数据和结构进行有效管理成为可能。常见用例包括管理配置数据、资源和缓存,其中数据可能最初是静态的,后来变为动态更新。
用法
要在 Rust 项目中使用此库,只需将其添加到您的 Cargo.toml
文件中的依赖项即可
[dependencies]
larc = "0.5.0"
然后,根据需要将 LArc
和 LWeak
类型导入并使用到您的 Rust 代码中
use std::sync::Arc;
use larc::{LArc, LWeak};
fn main() {
// Create an LArc with a static reference
let larc_static = LArc::from_static("Hello, I'm a static reference!");
// Create an LArc with an Arc reference
let larc_arc = LArc::from_arc(Arc::<str>::from("Hello, I'm an Arc reference!"));
// Downgrade LArc to LWeak
let lweak = LArc::downgrade(&larc_arc);
}
有关用法和 API 的更多信息,请参阅文档。
贡献
欢迎贡献!如果您有任何建议、错误报告或增强功能,请随时打开一个问题或创建一个 pull request。
状态
到目前为止,这个 crate 可用,缺少的功能将在需要/PR 时添加。
计划
- 添加更多
Arc
兼容性,但排除对我们用例来说没有意义的函数。 - 更多的测试和文档。
测试
测试套件远未完成,最终应该使用 cargo-mutants 来获得所有情况的良好覆盖。
请注意,按照设计,'make_static()' 故意泄漏内存。因此,在 miri 下禁用泄漏测试。 (这应该通过 MIRIFLAGS=-Zmiri-ignore-leaks 来功能化)