#[derive(parse_display::FromStr)]
enum Instruction {
#[display("turn off")]
TurnOff,
#[display("toggle")]
Toggle,
}
//succeeds
#[test]
fn parses_toggle() {
"toggle".parse::<Instruction>().unwrap();
}
//succeeds
#[test]
fn parses_turn_off() {
"turn off".parse::<Instruction>().unwrap();
}
#[derive(parse_display::FromStr)]
#[display("{instruction} {value}")]
struct ContainsInstruction {
instruction: Instruction,
value: u64,
}
//succeeds
#[test]
fn parses_contains_toggle() {
"toggle 123".parse::<ContainsInstruction>().unwrap();
}
//fails
#[test]
fn parses_contains_turn_on() {
"turn off 123".parse::<ContainsInstruction>().unwrap();
}