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