rsomics-vcf-count 0.1.0

Count variants in VCF files
Documentation
use std::fs::File;
use std::io::{BufRead, BufReader};
use std::path::Path;

use rsomics_common::{Result, RsomicsError};

pub fn count(input: &Path) -> Result<u64> {
    let file = File::open(input)
        .map_err(|e| RsomicsError::InvalidInput(format!("{}: {e}", input.display())))?;
    let reader = BufReader::new(file);
    let mut n: u64 = 0;
    for line in reader.lines() {
        let line = line.map_err(RsomicsError::Io)?;
        if !line.starts_with('#') && !line.is_empty() {
            n += 1;
        }
    }
    Ok(n)
}