diff options
Diffstat (limited to 'src/roadmap.rs')
-rw-r--r-- | src/roadmap.rs | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/roadmap.rs b/src/roadmap.rs index 778aa2f..7b78572 100644 --- a/src/roadmap.rs +++ b/src/roadmap.rs @@ -25,12 +25,8 @@ impl Roadmap { } /// Return list of step names. - pub fn step_names<'a>(&'a self) -> Vec<&'a str> { - let mut names = vec![]; - for step in self.steps.iter() { - names.push(step.name()); - } - names + pub fn step_names<'a>(&'a self) -> impl Iterator<Item=&str> { + self.steps.iter().map(|step| step.name()) } /// Get a step, given its name. @@ -190,7 +186,7 @@ mod tests { #[test] fn new_roadmap() { let roadmap = Roadmap::new(); - assert_eq!(roadmap.step_names().len(), 0); + assert_eq!(roadmap.step_names().count(), 0); } #[test] @@ -198,8 +194,8 @@ mod tests { let mut roadmap = Roadmap::new(); let first = Step::new("first", "the first step"); roadmap.add_step(&first).unwrap(); - assert_eq!(roadmap.step_names().len(), 1); - assert_eq!(roadmap.step_names(), vec!["first"]); + let names: Vec<&str> = roadmap.step_names().collect(); + assert_eq!(names, vec!["first"]); } #[test] |