edjr 0.1.0

Elite Dangerous Journal Reader
Documentation
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(())
}