diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2021-07-22 19:47:22 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2021-07-22 19:47:56 +0200 |
commit | 584302e4554430ca13ccb3b0b59f845aceab7caf (patch) | |
tree | f1eb51d6a80072b81d8a4707ae2804dc0e12e903 | |
parent | 571603de95416df63f092b688f54e7630964de5f (diff) | |
download | rebel-584302e4554430ca13ccb3b0b59f845aceab7caf.tar rebel-584302e4554430ca13ccb3b0b59f845aceab7caf.zip |
Make TaskRef a newtype wrapper
-rw-r--r-- | src/main.rs | 2 | ||||
-rw-r--r-- | src/types.rs | 11 |
2 files changed, 10 insertions, 3 deletions
diff --git a/src/main.rs b/src/main.rs index 2158e50..25bc6c4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -37,7 +37,7 @@ fn main() { let mut rsv = resolve::Resolver::new(&tasks); for task in opts.tasks { - let errors = rsv.add_goal(&task); + let errors = rsv.add_goal(&TaskRef(task)); if !errors.is_empty() { for error in errors { eprintln!("{}", error); diff --git a/src/types.rs b/src/types.rs index 2752e1d..8649042 100644 --- a/src/types.rs +++ b/src/types.rs @@ -36,7 +36,14 @@ pub type InputHash = StringHash; pub type OutputHasher = Sha256; pub type OutputHash = StringHash; -pub type TaskRef = String; +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq, Hash)] +pub struct TaskRef(pub String); + +impl Display for TaskRef { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + self.0.fmt(f) + } +} #[derive(Clone, Debug, Deserialize, Serialize)] pub struct TaskDef { @@ -65,7 +72,7 @@ pub struct TaskMap(pub HashMap<String, TaskDef>); impl TaskMap { pub fn get(&self, task: &TaskRef) -> Option<&TaskDef> { - self.0.get(task) + self.0.get(&task.0) } } |