use cote::prelude::*;
#[derive(Debug, Cote, PartialEq, Eq)]
#[cote(help)]
pub struct Cli {
#[cmd()]
foo: bool,
#[pos(index = "2", value = 42usize)]
bar: Option<usize>,
#[arg(alias = "-b", help = "Set the string value of baz")]
baz: String,
#[arg(force = true)]
qux: Option<i64>,
#[arg(values = ["need"])]
quux: Vec<String>,
}
fn main() -> color_eyre::Result<()> {
color_eyre::install()?;
assert!(Cli::parse(Args::from(["app", "--baz=6"])).is_err());
assert!(Cli::parse(Args::from(["app", "foo", "--baz=6"])).is_err());
assert!(Cli::parse(Args::from(["app", "--qux", "-5", "foo", "--baz=6"])).is_ok());
Ok(())
}