thermorawfilereader 0.6.0

A (relatively) high level interface to Thermo Fisher's RawFileReader library
Documentation
use std::env;
use std::io;

use thermorawfilereader::RawFileReader;


pub fn main() -> io::Result<()> {
    let mut args = env::args().skip(1);
    let path = args.next().unwrap_or_else(|| panic!("Please provide a RAW file path"));
    let reader = RawFileReader::open(path)?;
    if let Some(target) = args.next() {
        if let Some(logs) = reader.get_status_logs() {
            for log in logs.bool_logs() {
                if log.name.trim() == target {
                    println!("{target} found");
                    for (t, v) in log.iter_flags() {
                        println!("{t}, {v}");
                    }
                }
            }
            for log in logs.str_logs() {
                if log.name.trim() == target {
                    println!("{target} found");
                    for (t, v) in log.iter_strings() {
                        println!("{t}, {v}");
                    }
                }
            }
            for log in logs.float_logs() {
                if log.name.trim() == target {
                    println!("{target} found");
                    for (t, v) in log.iter() {
                        println!("{t}, {v}");
                    }
                }
            }
            for log in logs.int_logs() {
                if log.name.trim() == target {
                    println!("{target} found");
                    for (t, v) in log.iter() {
                        println!("{t}, {v}");
                    }
                }
            }
        }
    } else {
        if let Some(logs) = reader.get_status_logs() {
            for log in logs.bool_logs() {
                println!(r"Log: {0}
Type: bool
Length: {1}
", log.name, log.times().len())
            }
            for log in logs.float_logs() {
                println!(r"Log: {0}
Type: float
Length: {1}
", log.name, log.times().len())
            }
            for log in logs.int_logs() {
                println!(r"Log: {0}
Type: int
Length: {1}
", log.name, log.times().len())
            }
            for log in logs.str_logs() {
                println!(r"Log: {0}
Type: string
Length: {1}
", log.name, log.times().len())
            }
        }
    }

    Ok(())
}