use serde::Deserialize; use std::collections::HashMap; pub type TaskRef = String; #[derive(Clone, Debug, Deserialize)] pub struct Task { #[serde(default)] pub depends: Vec, #[serde(default)] pub output: Vec, pub run: String, } #[derive(Debug, Default)] pub struct TaskMap(pub HashMap); impl TaskMap { pub fn get(&self, task: &TaskRef) -> Option<&Task> { self.0.get(task) } }