1个不稳定版本
0.1.0 | 2023年3月12日 |
---|
#21 in #rust-patterns
14KB
280 行
原子引用强计数指针
当不需要 std::sync::Arc
弱引用时,是Rust的 std::sync::Weak
的替代品。通常用于在内存受限环境中略微减少内存使用。
示例
线程间的典型克隆和发送。
use arsc_rs::Arsc;
use std::thread;
let a = Arsc::new(123);
let b = a.clone();
thread::spawn(move || println!("{b:?}"));
用作接收器。
use arsc_rs::Arsc;
#[derive(Debug)]
struct A(i32);
impl A {
fn arsc_only(self: &Arsc<Self>) {
println!("Arsc only: {self:?}")
}
}
注意
- 仍然需要一个全局内存分配器。对于不支持动态分配的环境,请使用一些无堆结构的结构。
- 请注意,
Arsc
易受循环引用的影响!如果可能,请使用Arc
。 - 此crate使用一些仅限nightly的功能,因此需要最新的nightly工具链才能构建此crate。
依赖关系
~125KB