diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2021-10-24 22:40:08 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2021-10-24 23:58:03 +0200 |
commit | a1a185370da27f2cc3df84d3a8d7141f9ce7db16 (patch) | |
tree | 6904f6f0549e89d160cbe635713e2864df25c21a /crates/common/src/types.rs | |
parent | 524985f9449eb2f3a1d01b5f88dc74123d40c43a (diff) | |
download | rebel-a1a185370da27f2cc3df84d3a8d7141f9ce7db16.tar rebel-a1a185370da27f2cc3df84d3a8d7141f9ce7db16.zip |
Split defintions used by both runner and executor into separate crate
Also get rid of the Runner trait - different runner implementations do
not make sense with our current design.
Diffstat (limited to 'crates/common/src/types.rs')
-rw-r--r-- | crates/common/src/types.rs | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/crates/common/src/types.rs b/crates/common/src/types.rs new file mode 100644 index 0000000..51f9209 --- /dev/null +++ b/crates/common/src/types.rs @@ -0,0 +1,43 @@ +use std::{ + collections::{HashMap, HashSet}, + fmt::Display, +}; + +use serde::{Deserialize, Serialize}; + +use crate::string_hash::*; + +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq, Hash)] +pub struct TaskID { + pub recipe: String, + pub task: String, +} + +impl Display for TaskID { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}:{}", self.recipe, self.task) + } +} + +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq, Hash)] +#[serde(rename_all = "snake_case")] +pub enum Dependency { + Fetch { name: String, sha256: StringHash }, + Task { output: ArchiveHash, path: String }, +} + +#[derive(Clone, Debug, Deserialize, Serialize)] +pub struct Task { + pub label: String, + pub command: String, + pub inherit: Vec<LayerHash>, + pub depends: HashSet<Dependency>, + pub outputs: HashMap<String, String>, +} + +#[derive(Clone, Debug, Deserialize, Serialize)] +pub struct TaskOutput { + pub input_hash: InputHash, + pub layer: Option<LayerHash>, + pub outputs: HashMap<String, ArchiveHash>, +} |