Skip to main content

tuwunel_core/utils/stream/
cloned.rs

1use std::clone::Clone;
2
3use futures::{Stream, StreamExt, stream::Map};
4
5pub trait Cloned<'a, T, S>
6where
7	S: Stream<Item = &'a T>,
8	T: Clone + 'a,
9{
10	fn cloned(self) -> Map<S, fn(&T) -> T>;
11}
12
13impl<'a, T, S> Cloned<'a, T, S> for S
14where
15	S: Stream<Item = &'a T>,
16	T: Clone + 'a,
17{
18	#[inline]
19	fn cloned(self) -> Map<S, fn(&T) -> T> { self.map(Clone::clone) }
20}