1*b315a0a8SYosh use test_programs::wasi::cli::{stdin, stdout}; 2*b315a0a8SYosh use test_programs::wasi::io::streams::StreamError; 3*b315a0a8SYosh main()4*b315a0a8SYoshfn 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