Macro synom::epsilon [] [src]

macro_rules! epsilon {
    ($i:expr,) => { ... };
}

Parses nothing and always succeeds.

This can be useful as a fallthrough case in alt!.

extern crate syn;
#[macro_use] extern crate synom;

use syn::Mutability;

named!(mutability -> Mutability, alt!(
    keyword!("mut") => { |_| Mutability::Mutable }
    |
    epsilon!() => { |_| Mutability::Immutable }
));

fn main() {
    let input = "mut";
    let parsed = mutability(input).expect("mutability");
    assert_eq!(parsed, Mutability::Mutable);

    let input = "";
    let parsed = mutability(input).expect("mutability");
    assert_eq!(parsed, Mutability::Immutable);
}