parsli 0.0.1

Parallel status lines for Rust
Documentation
pub(crate) trait TaskFunc = FnOnce(u64, u64) -> Result<(), String> + Send + Sync + 'static;

pub struct Task {
    pub name: String,
    pub deps: Vec<String>,
    func: Box<dyn TaskFunc>,
}

impl Task {
    pub fn new(name: &str, deps: Vec<&str>, func: Box<dyn TaskFunc>) -> Self {
        Self { name: name.into(), deps: deps.iter().map(| d| d.to_string()).collect(), func }
    }

    pub fn dummy(name: &str, deps: Vec<&str>) -> Self {
        Self::new(name, deps, Box::new(|a: u64, b: u64| Ok(())))
    }
}

impl Default for Task {
    fn default() -> Self {
        Self::dummy("default", vec![])
    }
}