#refcell #rc #utility #derive-debug

rcrefcell

Rc> 的包装类型

8 个稳定版本

1.0.7 2022年7月16日
1.0.6 2022年6月1日
1.0.5 2022年5月31日

1725Rust 模式 中排名

每月下载量 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());

无运行时依赖