2 个版本
0.1.1 | 2022年5月12日 |
---|---|
0.1.0 | 2022年5月12日 |
#701 在 并发
14KB
170 行
clone-replace - 通过复制引用来共享数据
CloneReplace 提供了一些数据的 evolving reference 版本。当访问数据时,你将获得一个指向该引用在那一刻的快照的 Arc 处理器。当你想修改数据时,将对其进行完整复制,你可以独立更新它,而不会阻塞任何读取者。修改完成后,副本将被写回以成为新的引用版本。
示例
use clone_replace::CloneReplace;
let data = CloneReplace::new(1);
let v1 = data.access();
assert_eq!(*v1, 1);
{
let mut m = data.mutate();
*m = 2;
let v2 = data.access();
assert_eq!(*v1, 1);
assert_eq!(*v2, 1);
}
let v3 = data.access();
assert_eq!(*v3, 2);
assert_eq!(*v1, 1);
许可协议
本软件包可以在 Apache-2.0 或 MIT 许可协议 下使用。
依赖关系
~185KB