summaryrefslogtreecommitdiffstats
path: root/src/types.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/types.rs')
-rw-r--r--src/types.rs21
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,