19 releases (8 stable)

✓ Uses Rust 2018 edition

2.1.0 Mar 24, 2020
2.0.4 Dec 3, 2019
2.0.3 Aug 4, 2019
2.0.1 Jul 30, 2019
0.3.0 Mar 24, 2017

#18 in Parser tooling

Download history 3301/week @ 2019-12-10 1863/week @ 2019-12-17 650/week @ 2019-12-24 842/week @ 2019-12-31 1736/week @ 2020-01-07 2102/week @ 2020-01-14 1490/week @ 2020-01-21 2541/week @ 2020-01-28 2142/week @ 2020-02-04 2326/week @ 2020-02-11 2598/week @ 2020-02-18 2236/week @ 2020-02-25 3180/week @ 2020-03-03 3516/week @ 2020-03-10 3571/week @ 2020-03-17 3727/week @ 2020-03-24

9,783 downloads per month
Used in 24 crates (9 directly)

MIT/Apache

22KB
493 lines

rusticata-macros

License: MIT Apache License 2.0 Build Status Crates.io Version

Rusticata-macros

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.

Documentation

Crate is documented, do running cargo doc will crate the offline documentation.

Reference documentation can be found here

Changes

2.1.0

  • Add common trait Serialize for structures serialization

2.0.4

  • Add function version of most combinators

2.0.3

  • Add macros q (quote) and align32

2.0.2

  • Add upgrade_error and upgrade_error_to

2.0.1

  • Add macro custom_check
  • Add macro flat_take

2.0.0

  • Upgrade to nom 5
  • Debug types: use newtypes

1.1.0

  • Add macro newtype_enum

1.0.0

  • Upgrade to nom 4.0
    • Warning: this is a breaking change!
  • Mark parse_uint24 as deprecated

License

Licensed under either of

at your option.

Contribution

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.

Dependencies

~695KB
~13K SLoC