use accio::*;
fn main() {
println!(
"{:?}",
CmdArgs::parse(&["test", "-flag1", "test_val", "-flag2",])
);
}
#[accio_body(fields)]
#[derive(Debug, Default)]
pub struct CmdArgs {
}
impl CmdArgs {
#[accio_body(flagChecks + lastCheck)]
fn parse(args: &[&str]) -> Self {
let mut c = Self::default();
let mut it = args.iter().skip(1);
while let Some(f) = it.next() {
if let Some(k) = f.strip_prefix("-") {
match k {}
}
}
c
}
}
accio_emit! {
lastCheck{
_ => {}
}
}
accio_emit! {
fields {
pub flag1: Option<String>,
}
flagChecks{
"flag1" => {
if let Some(v) = it.next() {
c.flag1 = Some(v.to_string());
}
},
}
}
accio_emit! {
fields {
pub flag2: bool,
}
flagChecks{
"flag2" => {
c.flag2 = true;
},
}
}