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