1 mod bindings {
2     wit_bindgen::generate!({
3         path: "../misc/component-async-tests/wit",
4         world: "closed-streams",
5         async: true,
6     });
7 
8     use super::Component;
9     export!(Component);
10 }
11 
12 use {
13     bindings::exports::local::local::closed::Guest,
14     wit_bindgen_rt::async_support::{FutureReader, StreamReader, StreamResult},
15 };
16 
17 struct Component;
18 
19 impl Guest for Component {
20     async fn read_stream(mut rx: StreamReader<u8>, expected: Vec<u8>) {
21         let (result, buf) = rx.read(Vec::with_capacity(expected.len())).await;
22         assert_eq!(result, StreamResult::Complete(expected.len()));
23         assert_eq!(buf, expected);
24     }
25 
26     async fn read_future(rx: FutureReader<u8>, expected: u8, _rx_ignored: FutureReader<u8>) {
27         assert_eq!(rx.await, expected);
28     }
29 }
30 
31 // Unused function; required since this file is built as a `bin`:
32 fn main() {}
33