mod crispr;
mod grep;
mod input_iterator;
use clap::Parser;
use crispr::{CrisprArgs, crispr};
#[derive(clap::Parser)]
#[command(author, version, about)]
enum Args {
Grep(grep::GrepArgs),
Search(grep::SearchArgs),
Filter(grep::FilterArgs),
Crispr(CrisprArgs),
Test,
}
fn main() {
ensure_simd::ensure_simd();
let args = Args::parse();
env_logger::Builder::from_default_env()
.format_timestamp_millis()
.init();
match args {
Args::Grep(args) => args.run(),
Args::Search(args) => args.run(),
Args::Filter(args) => args.run(),
Args::Crispr(crispr_args) => crispr(&crispr_args),
Args::Test => {
sassy::test_cpu_features();
sassy::test_throughput();
}
}
}