#cell #arc #reference-counting #weak #weak-references #sync #empty

rcell

一个可以存储 Arc 或 Weak 智能指针或为空的 Cell

13 个版本 (6 个稳定版)

2.0.0 2022年12月8日
2.0.0-pre02022年3月10日
1.1.3 2022年3月3日
0.5.0 2022年1月24日

#826 in 并发

每月 22 次下载

MIT/Apache

10KB
171 代码行

  • RCell,因为 所有 大多数其方法都以 "r" 开头

引用计数的包装器,可以是 Strong<T>Weak<T>Empty,允许有选择地保留值。

当需要存储对某些数据的引用时,但此引用是否需要保持活跃是在运行时决定的。

默认启用的功能 sync 选择 std::sync::Arc<T>std::sync::Weak<T> 作为 rcell::Strong<T>rcell::Weak<T>。当禁用 sync 功能时,非同步的 std::rc::Rc<T>std::rc::Weak<T> 被选为 rcell::Strong<T>rcell::Weak<T>


lib.rs:

示例

use rcell::*;

// Our Type
#[derive(Debug, PartialEq)]
struct MyType<T>(T);

let my_rcell = RCell::new(MyType(100u8));
assert_eq!(*my_rcell.request().unwrap(), MyType(100));

无运行时依赖

功能