u32, iovs: WasmPtr<__wasi_ciovec_t, Array>, iovs_len: u32, nwritten: WasmPtr<u32> ) -> u32 { let memory = ctx.memory(0); let iovs_ptr = iovs.deref(memory, 0, iovs_len).unwrap(); let nwritten_ptr = nwritten.deref(memory).unwrap(); let total_len = iovs_ptr.iter().map(|iov| iov.get().buf_len).fold(0, |acc, x| acc + x); let data_arr = iovs_ptr.iter().map(|iov| get_array(&*ctx, iov.get())) .flat_map(|s| s.into_iter()).collect::<Vec<u8>>(); let data_str = std::str::from_utf8(data_arr.as_slice()).unwrap(); println!("wasi_fd_write fd={} byte_len={} bytes={}", fd, total_len, data_str); nwritten_ptr.set(total_len); return 0; }