fastq_rs 0.0.2

Multi purpose fastq toolkit.
Documentation
use crate::common::{general_bufwriter, needletail_fastq_reader};
use anyhow::Result;
use std::path::PathBuf;

pub fn fastq_head(
    fastq: Option<PathBuf>,
    num_reads: usize,
    outfile: Option<PathBuf>,
) -> Result<()> {
    let mut reader = needletail_fastq_reader(fastq)?;
    let mut writer = general_bufwriter(outfile)?;

    let mut n: usize = 0;

    while let Some(record) = reader.next() {
        let record = match record {
            Ok(record) => {
                n += 1;
                record
            }
            Err(_) => continue,
        };

        record.write(&mut writer, None)?;

        if n >= num_reads {
            break;
        }
    }

    Ok(())
}