1extern crate rivers;
2
3use rivers::adapters::{Key, Value};
4use rivers::event::Event;
5use rivers::stream::{Stream, StreamSource};
6use rivers::Rivers;
7
8#[tokio::main]
9async fn main() {
10 let events = vec![
11 Event::new(vec![0x1], vec![0x2]),
12 Event::new(vec![0x3], vec![0x4]),
13 Event::new(vec![0x5], vec![0x6]),
14 ];
15
16 let rivers = Rivers::new(events)
17 .stream("key and value", key_and_value_handler)
18 .stream("value only", value_handler);
19
20 rivers.run().await
21}
22
23async fn value_handler(mut s: StreamSource<Value>) {
24 while let Some(Value(v)) = s.next().await {
25 println!("value: {:02X?}", v);
26 }
27}
28
29async fn key_and_value_handler(mut s: StreamSource<(Key, Value)>) {
30 while let Some((Key(k), Value(v))) = s.next().await {
31 println!("key: {:02X?}, value: {:02X?}", k, v);
32 }
33}