浏览代码

add a map method to signal

Evan Almloff 1 年之前
父节点
当前提交
7ea868bd08
共有 1 个文件被更改,包括 6 次插入0 次删除
  1. 6 0
      packages/signals/src/signal.rs

+ 6 - 0
packages/signals/src/signal.rs

@@ -1,3 +1,4 @@
+use crate::SignalMap;
 use std::{
     cell::{Ref, RefCell, RefMut},
     ops::{Deref, DerefMut},
@@ -252,6 +253,11 @@ impl<T: 'static> Signal<T> {
         let mut write = self.write();
         f(&mut *write)
     }
+
+    /// Map the signal to a new type.
+    pub fn map<O>(self, f: fn(&T) -> &O) -> SignalMap<T, O> {
+        SignalMap::new(self, f)
+    }
 }
 
 impl<T: Clone + 'static> Signal<T> {