use super::{progress::Observation, BoxError, BoxFuture, BoxInstance, BoxStream};
mod default;
#[cfg(feature = "subprocess")]
pub mod subprocess;
pub trait Commander: core::fmt::Debug {
fn start(&self) -> Result<BoxInstance, BoxError>;
}
pub trait Instance {
fn shutdown(&mut self) -> BoxFuture<Result<BoxStream<Observation>, BoxError>>;
fn execute(&mut self, command: &str) -> BoxFuture<Result<BoxStream<Observation>, BoxError>>;
}