diff --git a/nested/src/sequence/map.rs b/nested/src/sequence/map.rs index a537fd7..0849382 100644 --- a/nested/src/sequence/map.rs +++ b/nested/src/sequence/map.rs @@ -33,6 +33,18 @@ impl OuterViewPort> { port.inner().set_view(Some(map)); port.into_outer() } + + pub fn filter_map< + DstItem: Clone + 'static, + F: Fn(&Item) -> Option + Send + Sync + 'static + >( + &self, + f: F + ) -> OuterViewPort> { + self.map(f) + .filter(|x| x.is_some()) + .map(|x| x.clone().unwrap()) + } } //<<<<>>>><<>><><<>><<<*>>><<>><><<>><<<<>>>>