diff options
| author | Yuval Adam <_@yuv.al> | 2022-07-06 14:25:55 +0300 |
|---|---|---|
| committer | Yuval Adam <_@yuv.al> | 2022-07-06 14:25:55 +0300 |
| commit | 06d3f26bcd4a0d3e8c5bb243670542ea1db70f46 (patch) | |
| tree | bba3e011863c2596df3f312e1875393a1b50f100 /src/main.rs | |
| parent | c37c438348bb24831406ab22e5dc6e56b5d93203 (diff) | |
Implement print_sink
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/main.rs b/src/main.rs index c583dc9..c82d35d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -71,13 +71,18 @@ fn double<S: Stream<Item = u32>>(input: S) -> impl Stream<Item = u32> { } } +fn print_sink<S: Stream<Item = u32>>(input: S) -> impl Stream<Item = ()> { + stream! { + for await val in input { + print!("{}", val); + } + } +} + #[tokio::main] async fn main() { let number_source = NumberSource { i: 0 }; - let s = double(number_source); + let s = print_sink(double(number_source)); pin_mut!(s); // needed for iteration - - while let Some(value) = s.next().await { - println!("got {}", value); - } + s.next().await; } |
