From 26a61eab9b371455d073b23efef25ac97a146598 Mon Sep 17 00:00:00 2001 From: Justin Worthe Date: Sat, 5 Jan 2019 21:43:02 +0200 Subject: Rearranged for better clarity --- src/main.rs | 27 ++++++++++++--------------- src/qif.rs | 30 +++++++++++++++--------------- 2 files changed, 27 insertions(+), 30 deletions(-) diff --git a/src/main.rs b/src/main.rs index d5e8ced..8874ea9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -43,25 +43,22 @@ fn main() -> Result<(), Box> { let mut lines = file_reader.lines(); if let Some(header_line) = lines.next() { - let qif_result = { - let mut qif_file = QifFile::new(header_line?); - let mut next_entry = Vec::new(); + let mut qif_file = QifFile::new(header_line?); + let mut next_entry = Vec::new(); - for line_result in lines { - let line = line_result?; - if line == String::from("^") { - let new_qif_entry = QifEntry::new(&next_entry)?; - qif_file.push(new_qif_entry); - next_entry.clear(); - } else { - next_entry.push(line); - } + for line_result in lines { + let line = line_result?; + if line == String::from("^") { + let new_qif_entry = QifEntry::new(&next_entry)?; + qif_file.push(new_qif_entry); + next_entry.clear(); + } else { + next_entry.push(line); } - qif_file - }; + } let mut file = File::create(filepath)?; - writeln!(file, "{}", qif_result)?; + writeln!(file, "{}", qif_file)?; } else { println!("{} was empty", filepath.display()); } diff --git a/src/qif.rs b/src/qif.rs index 6854ec7..5249677 100644 --- a/src/qif.rs +++ b/src/qif.rs @@ -47,21 +47,6 @@ const DATE_PREFIX: &str = "D"; const AMOUNT_PREFIX: &str = "T"; const DESCRIPTION_PREFIX: &str = "M"; -#[derive(Debug)] -pub enum QifParsingError { - MissingDate, - MissingAmount, - MissingDescription -} - -impl fmt::Display for QifParsingError { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - write!(f, "{:?}", self) - } -} - -impl Error for QifParsingError {} - impl QifEntry { pub fn new(lines: &Vec) -> Result { let date = lines.iter().find(|l| l.starts_with(DATE_PREFIX)); @@ -133,3 +118,18 @@ fn replace_common(text: &str) -> String { ).to_string() } + +#[derive(Debug)] +pub enum QifParsingError { + MissingDate, + MissingAmount, + MissingDescription +} + +impl fmt::Display for QifParsingError { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + write!(f, "{:?}", self) + } +} + +impl Error for QifParsingError {} -- cgit v1.2.3