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}