barkit-extract 0.1.0

Tool to extract barcodes
Documentation
use console::Emoji;
use indicatif::{ProgressBar, ProgressStyle};

use crate::error::Error;
use crate::fastq;

pub static SPARKLE: Emoji<'_, '_> = Emoji("", ":-)");

pub fn create_progress_bar(
    fastq_file: &str,
    threads: usize,
    max_memory: Option<usize>,
) -> Result<ProgressBar, Error> {
    let progress_bar_style = ProgressStyle::with_template(
        "{spinner:.green} [{elapsed_precise}] {bar:40.cyan/blue} {pos:>7}/{len:7} {per_sec} ({eta})",
    ).expect("Failed to parse a progress bar template")
    .progress_chars("##-");

    let read_num = fastq::get_reads_count(fastq_file, threads, max_memory) as u64;

    let progress_bar = ProgressBar::new(read_num as u64);
    progress_bar.set_style(progress_bar_style.clone());

    Ok(progress_bar)
}