#[path = "common/mod.rs"]
#[allow(dead_code)]
mod common;
use anyhow::Result;
use clap::Parser;
use common::{output_handle, OutputFormat, Writer};
use paraseq::{fastx, prelude::*};
#[derive(Parser)]
struct Cli {
input: Option<String>,
#[clap(short, long)]
output: Option<String>,
#[clap(short = 'T', long, default_value_t = 0)]
threads: usize,
#[clap(short, long, default_value = "fasta")]
format: OutputFormat,
}
fn main() -> Result<()> {
let args = Cli::parse();
let reader = fastx::Reader::from_optional_path(args.input)?;
let mut processor = Writer::new(output_handle(&args.output)?, args.format);
reader.process_parallel(&mut processor, args.threads)?;
Ok(())
}