diff options
Diffstat (limited to 'src/parser.rs')
-rw-r--r-- | src/parser.rs | 43 |
1 files changed, 16 insertions, 27 deletions
diff --git a/src/parser.rs b/src/parser.rs index 7602b94..d83f618 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -1,4 +1,3 @@ -use serde_yaml; use serde_yaml::Value; use std::collections::HashMap; @@ -26,13 +25,13 @@ pub fn from_yaml(yaml: &str) -> RoadmapResult<Roadmap> { fn step_from_value(name: &str, value: &Value) -> RoadmapResult<Step> { match value { Value::Mapping(_) => { - let label = parse_label(&value); - let status = parse_status(&value)?; + let label = parse_label(value); + let status = parse_status(value)?; let mut step = Step::new(name, label); step.set_status(status); - for depname in parse_depends(&value)?.iter() { + for depname in parse_depends(value)?.iter() { step.add_dependency(depname); } @@ -70,7 +69,7 @@ fn parse_label(map: &Value) -> &str { } // Get status string from a Mapping element. Default to unknown status. -fn parse_status<'a>(map: &'a Value) -> RoadmapResult<Status> { +fn parse_status(map: &Value) -> RoadmapResult<Status> { let text = parse_string("status", map); match Status::from_text(text) { Some(status) => Ok(status), @@ -94,46 +93,36 @@ mod tests { #[test] fn yaml_is_empty() { - let r = from_yaml(""); - match r { - Ok(_) => panic!("expected a parse error"), - _ => (), + if from_yaml("").is_ok() { + panic!("expected a parse error"); } } #[test] fn yaml_is_list() { - let r = from_yaml("[]"); - match r { - Ok(_) => panic!("expected a parse error"), - _ => (), + if from_yaml("[]").is_ok() { + panic!("expected a parse error"); } } #[test] fn yaml_map_entries_not_maps() { - let r = from_yaml("foo: []"); - match r { - Ok(_) => panic!("expected a parse error"), - _ => (), + if from_yaml("foo: []").is_ok() { + panic!("expected a parse error"); } } #[test] fn yaml_unknown_dep() { - let r = from_yaml("foo: {depends: [bar]}"); - match r { - Ok(_) => panic!("expected a parse error"), - _ => (), + if from_yaml("foo: {depends: [bar]}").is_ok() { + panic!("expected a parse error"); } } #[test] fn yaml_unknown_status() { - let r = from_yaml(r#"foo: {status: "bar"}"#); - match r { - Ok(_) => panic!("expected a parse error"), - _ => (), + if from_yaml(r#"foo: {status: "bar"}"#).is_ok() { + panic!("expected a parse error"); } } @@ -159,8 +148,8 @@ second: let first = roadmap.get_step("first").unwrap(); assert_eq!(first.name(), "first"); assert_eq!(first.label(), "the first step"); - let deps: Vec<&str> = first.dependencies().collect(); - assert_eq!(deps.len(), 0); + let deps = first.dependencies().count(); + assert_eq!(deps, 0); let second = roadmap.get_step("second").unwrap(); assert_eq!(second.name(), "second"); |