Helper macros for the rusticata project.
This crate contains some additions to nom.
For example, the error_if!
macro allows to test a condition and return an error from the parser if the condition
fails:
use rusticata_macros::error_if;
let r : IResult<&[u8],()> = do_parse!(
s,
l: be_u8 >>
error_if!(l < 4, ErrorKind::Verify) >>
data: take!(l - 4) >>
(())
);
See the documentation for more details and examples.
Crate is documented, do running cargo doc
will crate the offline documentation.
Reference documentation can be found here
- Add common trait
Serialize
for structures serialization
- Add function version of most combinators
- Add macros
q
(quote) andalign32
- Add
upgrade_error
andupgrade_error_to
- Add macro
custom_check
- Add macro
flat_take
- Upgrade to nom 5
- Debug types: use newtypes
- Add macro
newtype_enum
- Upgrade to nom 4.0
- Warning: this is a breaking change!
- Mark
parse_uint24
as deprecated
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.