use std::process::Child;
pub struct KillOnDrop {
child: Child,
}
impl KillOnDrop {
pub fn new(child: Child) -> Self {
Self { child }
}
pub fn id(&self) -> u32 {
self.child.id()
}
pub fn kill(&mut self) -> std::io::Result<()> {
self.child.kill()
}
}
impl Drop for KillOnDrop {
fn drop(&mut self) {
self.child.kill().ok();
self.child.wait().ok();
}
}