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