From d3a81e80937582f8eb5212296d68104c182780b8 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Fri, 4 Oct 2019 10:42:10 +0300 Subject: Change: dependencies() to return iterator over &str This avoids making temporary, pointless copies of Strings. --- src/parser.rs | 4 ++-- src/step.rs | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/parser.rs b/src/parser.rs index 60bbf2a..411c074 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -160,13 +160,13 @@ second: let first = roadmap.get_step("first").unwrap(); assert_eq!(first.name(), "first"); assert_eq!(first.label(), "the first step"); - let deps: Vec<&String> = first.dependencies().collect(); + let deps: Vec<&str> = first.dependencies().collect(); assert_eq!(deps.len(), 0); let second = roadmap.get_step("second").unwrap(); assert_eq!(second.name(), "second"); assert_eq!(second.label(), "the second step"); - let deps: Vec<&String> = second.dependencies().collect(); + let deps: Vec<&str> = second.dependencies().collect(); assert_eq!(deps, vec!["first"]); } } diff --git a/src/step.rs b/src/step.rs index a37f23c..6088400 100644 --- a/src/step.rs +++ b/src/step.rs @@ -45,8 +45,8 @@ impl Step { } /// Return vector of names of dependencies for a step. - pub fn dependencies(&self) -> impl Iterator { - self.depends.iter() + pub fn dependencies(&self) -> impl Iterator { + self.depends.iter().map(|s| s.as_str()) } /// Add the name of a dependency to step. Steps are referred by @@ -86,7 +86,7 @@ mod tests { fn add_step_dependency() { let mut second = Step::new("second", "the second step"); second.add_dependency("first"); - let deps: Vec<&String> = second.dependencies().collect(); + let deps: Vec<&str> = second.dependencies().collect(); assert_eq!(deps, vec!["first"]); } } -- cgit v1.2.1