1*b315a0a8SYosh use test_programs::wasi::cli::{stdin, stdout};
2*b315a0a8SYosh use test_programs::wasi::io::streams::StreamError;
3*b315a0a8SYosh 
main()4*b315a0a8SYosh fn main() {
5*b315a0a8SYosh     println!("before splice");
6*b315a0a8SYosh     let stdout = stdout::get_stdout();
7*b315a0a8SYosh     let stdin = stdin::get_stdin();
8*b315a0a8SYosh 
9*b315a0a8SYosh     let mut spliced = 0;
10*b315a0a8SYosh     loop {
11*b315a0a8SYosh         match stdout.blocking_splice(&stdin, 4096) {
12*b315a0a8SYosh             Ok(n) => spliced += n as usize,
13*b315a0a8SYosh             Err(StreamError::Closed) => break,
14*b315a0a8SYosh             Err(StreamError::LastOperationFailed(f)) => {
15*b315a0a8SYosh                 panic!("stream failure: {}", f.to_debug_string())
16*b315a0a8SYosh             }
17*b315a0a8SYosh         }
18*b315a0a8SYosh     }
19*b315a0a8SYosh     let _ = stdin;
20*b315a0a8SYosh     stdout.blocking_flush().unwrap();
21*b315a0a8SYosh     let _ = stdout;
22*b315a0a8SYosh 
23*b315a0a8SYosh     println!("\ncompleted splicing {spliced} bytes");
24*b315a0a8SYosh }
25