1个不稳定版本

0.1.0 2023年3月12日

#21 in #rust-patterns

MIT/Apache

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