From 6cfcff39b63b36ca7e9d1ccde825ac038a7ac6d5 Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Tue, 19 May 2020 10:39:06 +0200 Subject: [PATCH] Unify functions --- src/actions/mod.rs | 113 ++++++++++++++++----------------------------- 1 file changed, 41 insertions(+), 72 deletions(-) diff --git a/src/actions/mod.rs b/src/actions/mod.rs index a6a0103..e0678c3 100644 --- a/src/actions/mod.rs +++ b/src/actions/mod.rs @@ -77,42 +77,7 @@ pub fn parse_manifest_file(filename: String) -> Result { let file = BufReader::new(&f); for (line_nr, line_read) in file.lines().enumerate() { - let line = line_read?; - match determine_action_kind(&line) { - ActionKind::Attr => { - m.attributes.push(parse_attr_action(String::from(line))?); - } - ActionKind::Dir => { - - } - ActionKind::File => { - - } - ActionKind::Dependency => { - - } - ActionKind::User => { - - } - ActionKind::Group => { - - } - ActionKind::Driver => { - - } - ActionKind::License => { - - } - ActionKind::Link => { - - } - ActionKind::Legacy => { - - } - ActionKind::Unknown{action} => { - Err(ManifestError::UnknownAction {action, line: line_nr})?; - } - } + handle_manifest_line(&mut m, line_read?.trim_start(), line_nr)?; } return Ok(m); @@ -121,46 +86,50 @@ pub fn parse_manifest_file(filename: String) -> Result { pub fn parse_manifest_string(manifest: String) -> Result { let mut m = Manifest::new(); for (line_nr, line) in manifest.lines().enumerate() { - match determine_action_kind(&line) { - ActionKind::Attr => { - let attr = parse_attr_action(String::from(line))?; - m.attributes.push(attr) - } - ActionKind::Dir => { - - } - ActionKind::File => { - - } - ActionKind::Dependency => { - - } - ActionKind::User => { - - } - ActionKind::Group => { - - } - ActionKind::Driver => { - - } - ActionKind::License => { - - } - ActionKind::Link => { - - } - ActionKind::Legacy => { - - } - ActionKind::Unknown{action} => { - Err(ManifestError::UnknownAction {action, line: line_nr})?; - } - } + handle_manifest_line(&mut m, line.trim_start(), line_nr)?; } return Ok(m); } +fn handle_manifest_line(manifest: &mut Manifest, line: &str, line_nr: usize) -> Result<(), Error> { + match determine_action_kind(&line) { + ActionKind::Attr => { + manifest.attributes.push(parse_attr_action(String::from(line))?); + } + ActionKind::Dir => { + + } + ActionKind::File => { + + } + ActionKind::Dependency => { + + } + ActionKind::User => { + + } + ActionKind::Group => { + + } + ActionKind::Driver => { + + } + ActionKind::License => { + + } + ActionKind::Link => { + + } + ActionKind::Legacy => { + + } + ActionKind::Unknown{action} => { + Err(ManifestError::UnknownAction {action, line: line_nr})?; + } + } + Ok(()) +} + fn determine_action_kind(line: &str) -> ActionKind { let mut act = String::new(); for c in line.trim_start().chars() {