main.rs
use clap::Parser;
mod gather;
mod names_database;
mod pick;
type DynError = Box<dyn std::error::Error + Send + Sync>;
type DynResult<A> = Result<A, DynError>;
#[derive(Parser, Debug)]
#[clap(about, version, author)]
struct Args {
database: String,
count: u16,
#[clap(long, arg_enum)]
gather: Option<gather::Gender>,
}
#[tokio::main]
async fn main() -> DynResult<()> {
let args = Args::parse();
let db = names_database::AsyncConnection::open(args.database).await?;
pick::pick(&db, args.count, args.gather).await?;
Ok(())
}