wasi_net/process/
child_stdin.rs

1use std::io::Write;
2use std::sync::Arc;
3use std::sync::Mutex;
4
5use super::*;
6use crate::backend::MessageProcess;
7
8#[derive(Debug)]
9pub struct ChildStdin {
10    pub(super) worker: Arc<Mutex<Worker>>,
11}
12
13impl Write for ChildStdin {
14    fn write(&mut self, buf: &[u8]) -> Result<usize> {
15        let msg = MessageProcess::Stdin(buf.to_vec());
16        self.worker.lock().unwrap().send(msg)?;
17        return Ok(buf.len());
18    }
19
20    fn flush(&mut self) -> Result<()> {
21        Ok(())
22    }
23}