Derive Macro quartz_commands::FromArgument[][src]

#[derive(FromArgument)]
Expand description

Derives the trait FromArgument for enums whose variants are field-less.

use quartz_commands::{ArgumentTraverser, FromArgument};

#[derive(FromArgument, PartialEq, Eq, Debug)]
enum ValidArgs {
    Foo,
    Bar,
    FizzBuzz
}

// We need this because types are allowed to parse multiple arguments
let mut dummy = ArgumentTraverser::new("");

assert_eq!(ValidArgs::from_arg("foo", &mut dummy, &()), Ok(ValidArgs::Foo));
assert_eq!(ValidArgs::from_arg("fizz-buzz", &mut dummy, &()), Ok(ValidArgs::FizzBuzz));