summaryrefslogtreecommitdiff
path: root/src/roadmap.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/roadmap.rs')
-rw-r--r--src/roadmap.rs14
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]