imzml 0.1.3

A library for reading the mass spectrometry (imaging) formats mzML and imzML.
Documentation
use std::{fs::File, io::BufReader, time::Instant};

use imzml::{mzml::MzMLReader, obo::IMZML_ONTOLOGY, validation::full_validate, ImzMLReader};

fn main() {
    // let filename =
    //     "/home/alan/Downloads/rat testis_whole_sm_50um_ton_ja04feb22-root mean square.imzML";
    // let filename = "/home/alan/Documents/GitProjects/imzml-rs/metaspace-test/dataset_00.imzML";
    // let filename = "/home/alan/Documents/GitProjects/imzml-rs/metaspace-test/dataset_01.imzML";
    let filename = "/home/alan/Documents/GitProjects/imzml-rs/metaspace-test/dataset_02.imzML";
    //let filename = "/home/alan/Documents/GitProjects/imzml-rs/metaspace-test/cutted_ds.imzML";

    let start = Instant::now();

    let mut errors = Vec::new();

    let parser = match MzMLReader::from_path_with_ontology(filename, IMZML_ONTOLOGY.clone()) {
        Ok(parser) => parser,
        Err(fatal_error) => {
            println!("Fatal error: {:?}", fatal_error);
            return;
        }
    };

    let duration = start.elapsed();

    for error in parser.errors() {
        errors.push(format!("{}", error));
    }
    println!("Time elapsed when parsing is: {:?}", duration);

    let start = Instant::now();

    let errors = full_validate(&IMZML_ONTOLOGY, parser.mzml().unwrap());

    let duration = start.elapsed();
    println!("Time elapsed when validating is: {:?}", duration);

    for (index, error) in errors.iter().enumerate() {
        println!("{}", error);

        if index > 10 {
            break;
        }
    }

    //while parser.has_errors() {
    //    println!("{:?}", parser.pop_error_front().unwrap());
    //}
}