use {
edjr::{journal::Journal, read::Read},
std::{
error::Error,
fs::{File, read_dir},
path::PathBuf,
},
};
fn main() -> Result<(), Box<dyn Error>> {
let mut entries = Vec::new();
let journals: Vec<PathBuf> = read_dir("/Users/stefanlight/Documents/Journals/")?
.map(|entry| entry.unwrap().path())
.collect();
for journal in journals {
println!("reading {}", journal.display());
let mut journal = Journal::<File>::open(journal)?;
entries.extend(journal.read_all()?);
}
let mut known = 0usize;
let mut unknown = 0usize;
for entry in &entries {
match &entry.event {
edjr::event::JournalEvent::Unknown => {
unknown += 1;
}
_ => {
known += 1;
}
}
}
println!("total : {}", entries.len());
println!("known : {}", known);
println!("unknown : {}", unknown);
let coverage = (known as f64 / entries.len() as f64) * 100.0;
println!("coverage: {:.2}%", coverage);
Ok(())
}