8 个稳定版本
1.0.7 | 2022年7月16日 |
---|---|
1.0.6 | 2022年6月1日 |
1.0.5 | 2022年5月31日 |
1725 在 Rust 模式 中排名
每月下载量 33
5KB
94 行
rcrefcell
简单的 Rc<RefCell<A>>
包装
示例
#[derive(Debug, PartialEq)]
struct Data<A> {
value: A
}
impl<A> Data<A> {
fn new(value: A) -> Data<A> {
Data {
value,
}
}
}
let data: Data<i32> = Data::new(1);
let counter: RcCell<Data<i32>> = RcCell::new(data);
let counter_a: RcCell<Data<i32>> = counter.clone();
let counter_b: RcCell<Data<i32>> = counter.clone();
counter_a.update(|mut v| v.value += 1);
counter_b.borrow_mut().value *= 3;
assert_eq!(counter.borrow().value, 6);
assert_eq!(*counter_a.borrow(), *counter_b.borrow());