From 185f7ced8de4a44400051f3976d6d826863acb69 Mon Sep 17 00:00:00 2001 From: Anton Tarasenko Date: Tue, 17 Nov 2020 19:36:29 +0700 Subject: [PATCH] Add db output for testing --- src/database/mod.rs | 31 +++++++++++++++++++++++++++++++ src/main.rs | 4 ++-- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/database/mod.rs b/src/database/mod.rs index 19f78fa..43169df 100644 --- a/src/database/mod.rs +++ b/src/database/mod.rs @@ -2,6 +2,7 @@ use log::warn; use serde_json; use std::error::Error; use std::fs; +use std::fmt; use std::path; extern crate custom_error; @@ -31,6 +32,36 @@ pub struct Database { contents: Vec, } +impl fmt::Display for Group { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + writeln!(f, " ({})", self.name)?; + for file in self.files.iter() { + writeln!(f, r#" File "{}": {}"#, file.name, file.contents.to_string())?; + } + Ok(()) + } +} + +impl fmt::Display for Category { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + writeln!(f, "[{}]", self.name)?; + for g in self.groups.iter() { + write!(f, "{}", g)?; + } + Ok(()) + } +} + +impl fmt::Display for Database { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + writeln!(f, "DB: {}", self.storage.display())?; + for c in self.contents.iter() { + writeln!(f, "{}", c)?; + } + Ok(()) + } +} + impl Database { pub fn new(storage: &path::Path) -> Result> { if !storage.is_dir() { diff --git a/src/main.rs b/src/main.rs index b78fc6d..9aff605 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,7 +7,7 @@ fn main() { let filename = &args[1]; let config = database::Database::new(Path::new(filename)); match config { - Ok(db) => print!("ok"), - _ => (), + Ok(db) => print!("{}", db), + Err(error) => println!("OH NO: {}", error), } }