use facet::Facet;
use facet_pretty::FacetPretty;
use figue as args;
#[derive(Facet)]
struct Args {
#[facet(args::named, args::short = 'V')]
verbose: bool,
#[facet(args::subcommand)]
sub: Subcommand,
}
#[derive(Facet)]
#[repr(u8)]
#[allow(dead_code)]
enum Subcommand {
Init {
#[facet(args::named, args::short = 'h')]
help: bool,
#[facet(args::named, args::short = 'n')]
name: Option<String>,
#[facet(args::named, args::short = 'f')]
force: bool,
#[facet(args::positional)]
path: Option<String>,
},
Run {
#[facet(args::named, args::short = 'p')]
port: u16,
#[facet(args::named)]
daemon: bool,
#[facet(args::named)]
workers: Option<usize>,
#[facet(args::counted, args::short = 'v')]
verbose: u8,
},
}
fn main() {
let result: Args = figue::from_std_args().unwrap();
println!("{}", result.pretty());
}