diff options
Diffstat (limited to 'src/types.rs')
-rw-r--r-- | src/types.rs | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/src/types.rs b/src/types.rs index 2c94679..9479925 100644 --- a/src/types.rs +++ b/src/types.rs @@ -43,24 +43,21 @@ pub type OutputHasher = Sha256; pub type OutputHash = StringHash; #[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq, Hash)] -pub struct TaskRef(pub String); +pub struct TaskRef { + #[serde(rename = "task")] + pub id: String, +} impl Display for TaskRef { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - self.0.fmt(f) + self.id.fmt(f) } } -#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq, Hash)] -pub enum Dependency { - #[serde(rename = "task")] - Task(TaskRef), -} - #[derive(Clone, Debug, Deserialize, Serialize)] pub struct TaskDef { #[serde(default)] - pub depends: Vec<Dependency>, + pub depends: Vec<TaskRef>, #[serde(default)] pub run: String, } @@ -69,7 +66,7 @@ pub struct TaskDef { pub struct Task { pub id: TaskRef, pub def: TaskDef, - pub depends: HashMap<OutputHash, Dependency>, + pub depends: HashMap<OutputHash, TaskRef>, pub env: HashMap<String, String>, } @@ -84,14 +81,14 @@ pub struct TaskMap(pub HashMap<String, TaskDef>); impl TaskMap { pub fn get(&self, task: &TaskRef) -> Option<&TaskDef> { - self.0.get(&task.0) + self.0.get(&task.id) } } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct TaskOutput { pub id: TaskRef, - pub depends: HashMap<OutputHash, Dependency>, + pub depends: HashMap<OutputHash, TaskRef>, pub env: HashMap<String, String>, pub input_hash: InputHash, pub output_hash: OutputHash, |