hermes_runtime_components/traits/
stream.rs

1use cgp::prelude::*;
2
3#[derive_component(StreamTypeComponent, ProvideStreamType<Runtime>)]
4pub trait HasStreamType: Async {
5    type Stream<Item: Async>: Async;
6}
7
8#[derive_component(StreamMapperComponent, StreamMapper<Runtime>)]
9pub trait CanMapStream: HasStreamType {
10    fn map_stream<T, U, M>(stream: Self::Stream<T>, mapper: M) -> Self::Stream<U>
11    where
12        T: Async,
13        U: Async,
14        M: Fn(T) -> U + Async;
15}