macro_rules! option {
($i:expr, $submac:ident!( $($args:tt)* )) => { ... };
($i:expr, $f:expr) => { ... };
}Expand description
Turn a failed parse into None and a successful parse into Some.
- Syntax:
option!(THING) - Output:
Option<THING>
extern crate syn;
#[macro_use] extern crate synom;
named!(maybe_bang -> Option<&str>, option!(punct!("!")));
fn main() {
let input = "!";
let parsed = maybe_bang(input).expect("maybe bang");
assert_eq!(parsed, Some("!"));
let input = "";
let parsed = maybe_bang(input).expect("maybe bang");
assert_eq!(parsed, None);
}