use tokio::{
io,
process::{Child, ChildStderr, ChildStdout},
};
use super::{CrocEventStream, Result};
pub struct CrocChild {
inner: Child,
}
impl CrocChild {
pub fn new(inner: Child) -> Self {
Self { inner }
}
pub fn take_stderr(&mut self) -> Option<ChildStderr> {
self.inner.stderr.take()
}
pub fn take_stdout(&mut self) -> Option<ChildStdout> {
self.inner.stdout.take()
}
pub fn events(&mut self) -> Result<CrocEventStream> {
CrocEventStream::new(self)
}
pub async fn kill(&mut self) -> io::Result<()> {
self.inner.kill().await
}
pub fn id(&self) -> Option<u32> {
self.inner.id()
}
}