1 use test_programs::p3::{wasi, wit_stream}; 2 3 struct Component; 4 5 test_programs::p3::export!(Component); 6 7 impl test_programs::p3::exports::wasi::cli::run::Guest for Component { 8 async fn run() -> Result<(), ()> { 9 let mut args = std::env::args().skip(1); 10 let string_to_write = args.next().unwrap(); 11 let times_to_write = args.next().unwrap().parse::<u32>().unwrap(); 12 13 let bytes = string_to_write.as_bytes(); 14 let (mut tx, rx) = wit_stream::new(); 15 futures::join!( 16 async { wasi::cli::stdout::write_via_stream(rx).await.unwrap() }, 17 async { 18 for _ in 0..times_to_write { 19 let result = tx.write_all(bytes.to_vec()).await; 20 assert!(result.is_empty()); 21 } 22 drop(tx); 23 } 24 ); 25 Ok(()) 26 } 27 } 28 29 fn main() { 30 unreachable!(); 31 } 32