2 releases
0.1.1 | Apr 9, 2020 |
---|---|
0.1.0 | Apr 6, 2020 |
#2687 in Rust patterns
32 downloads per month
Used in 2 crates
4KB
nom-fields
This crate provides a single function-like macro that removes some boilerplate from a common pattern when using the parsing framework nom.
With this macro, the following parser...
nom::combinator::map(
nom::sequence::tuple((
some_parser,
some_other_parser,
a_third_parser
)),
|(some_field, some_other_field, a_third_field)| SomeStruct {
some_field,
some_other_field,
a_third_field
}
)(input)
...becomes this:
nom_fields::fields!(SomeStruct:
some_field = some_parser,
some_other_field = some_other_parser,
a_third_field = a_third_parser
)(input)
lib.rs
:
This crate provides a single function-like macro that removes some boilerplate from a common pattern when using the parsing framework nom.
With this macro, the following parser...
nom::combinator::map(
nom::sequence::tuple((
some_parser,
some_other_parser,
a_third_parser
)),
|(some_field, some_other_field, a_third_field)| SomeStruct {
some_field,
some_other_field,
a_third_field
}
)(input)
...becomes this:
nom_fields::fields!(SomeStruct:
some_field = some_parser,
some_other_field = some_other_parser,
a_third_field = a_third_parser
)(input)