willdo 0.0.1

Task manager with DAG
Documentation
//! Script interpretters - commanders

use super::{progress::Observation, BoxError, BoxFuture, BoxInstance, BoxStream};

mod default;
#[cfg(feature = "subprocess")]
pub mod subprocess;

/// Represents a commander capable of running a job script
pub trait Commander: core::fmt::Debug {
    /// Create a new instance
    fn start(&self) -> Result<BoxInstance, BoxError>;
}

/// Represents a running script interpretter
pub trait Instance {
    /// Finish
    fn shutdown(&mut self) -> BoxFuture<Result<BoxStream<Observation>, BoxError>>;
    /// Execute a command
    fn execute(&mut self, command: &str) -> BoxFuture<Result<BoxStream<Observation>, BoxError>>;
}