瀏覽代碼

Added `.with_mut_silent()` fn

serzhiio 2 年之前
父節點
當前提交
0df6a8f2ac
共有 1 個文件被更改,包括 7 次插入0 次删除
  1. 7 0
      packages/fermi/src/hooks/atom_ref.rs

+ 7 - 0
packages/fermi/src/hooks/atom_ref.rs

@@ -4,6 +4,7 @@ use std::{
     cell::{Ref, RefCell, RefMut},
     rc::Rc,
 };
+use std::ops::DerefMut;
 
 ///
 ///
@@ -70,6 +71,12 @@ impl<T: 'static> UseAtomRef<T> {
         self.value.borrow()
     }
 
+    /// This is silent operation
+    /// call `.force_update()` manually if required
+    pub fn with_mut_silent(&self, cb: impl FnOnce(&mut T)) {
+        cb(self.write_silent().deref_mut())
+    }
+
     pub fn write(&self) -> RefMut<T> {
         self.root.force_update(self.ptr);
         self.value.borrow_mut()