summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main.rs27
-rw-r--r--src/qif.rs30
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<Error>> {
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<String>) -> Result<QifEntry, QifParsingError> {
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 {}