#![deny(
bad_style,
dead_code,
improper_ctypes,
missing_debug_implementations,
no_mangle_generic_items,
non_shorthand_field_patterns,
overflowing_literals,
path_statements,
patterns_in_fns_without_body,
private_in_public,
unconditional_recursion,
unreachable_pub,
unused,
unused_allocation,
unused_comparisons,
unused_parens,
while_true,
clippy::expect_used
)]
#![forbid(unsafe_code)]
#![doc = include_str!("../README.md")]
use std::process::ExitCode;
use anyhow::Result;
use clap::Parser;
use regular::{enumerate, example};
fn main() -> Result<ExitCode> {
let args = Opt::parse();
match args {
Opt::Example(o) => example(o.expression),
Opt::Enumerate(o) => enumerate(o.expression),
}?;
Ok(ExitCode::SUCCESS)
}
#[derive(Parser, Debug)]
struct ExampleOpt {
expression: String,
}
#[derive(Parser, Debug)]
struct EnumerateOpt {
expression: String,
}
#[derive(Parser, Debug)]
#[command(author, version, about)]
enum Opt {
#[arg()]
Example(ExampleOpt),
#[arg()]
Enumerate(EnumerateOpt),
}