pub trait ProcessExt {
    fn get_command(&mut self) -> &mut Command;
    fn killer(&self) -> Option<Sender<()>>;
    fn set_killer(&mut self, killer: Sender<()>);

    fn command(&mut self) -> &mut Command { ... }
    fn spawn_and_stream(&mut self) -> Result<ProcessStream> { ... }
    fn _spawn_and_stream(&mut self) -> Result<ProcessStream> { ... }
    fn take_stdin(&mut self) -> Option<ChildStdin> { ... }
    fn set_child_stdin(&mut self, _child_stdin: Option<ChildStdin>) { ... }
    fn get_stdin(&mut self) -> Option<Stdio> { ... }
    fn get_stdout(&mut self) -> Option<Stdio> { ... }
    fn get_stderr(&mut self) -> Option<Stdio> { ... }
    fn kill<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
    where
        Self: Sized,
        'life0: 'async_trait,
        Self: Sync + 'async_trait
, { ... } }
Expand description

ProcessExt trait that needs to be implemented to make something streamable

Required Methods

Get command that will be used to create a child process from

Get a sender that can be used to send kill a the process

Set a sender that can be used to send kill a the process

Provided Methods

Get command after settings the required pipes;

Spawn and stream process

Spawn and stream process (avoid custom implementation, use spawn_and_stream instead)

Get process stdin

Set process stdin

Get process stdin pipe

get process stdout pipe

get process stderr pipe

Kill the process

Implementors