nom v1.0.0 Release Notes

Release Date: 2015-11-16 // over 8 years ago
  • ๐Ÿš€ Stable release for nom. A lot of new features, a few breaking changes

    Thanks

    • ๐Ÿ›  @ahenry for macro fixes
    • ๐Ÿ“š @bluss for fixing documentation
    • @sourrust for cleaning code and debugging the new streaming utilities
    • @meh for inline optimizations
    • @ccmtaylor for fixing function imports
    • @soro for improvements to the streaming utilities
    • โœ๏ธ @breard-r for catching my typos
    • โœ๏ธ @nelsonjchen for catching my typos too
    • ๐Ÿ“œ @divarvel for hex string parsers
    • @mrordinaire for the length_bytes! combinator

    ๐Ÿ’ฅ Breaking changes

    • IResult::Error can now use custom error types, and is generic over the input type
    • ๐Ÿ“œ Producers and consumers have been replaced. The new implementation uses less memory and integrates more with parsers
    • nom::ErrorCode is now nom::ErrorKind
    • filter! has been renamed to take_while!
    • ๐Ÿ“œ chain! will count how much data is consumed and use that number to calculate how much data is needed if a parser returned Incomplete
    • ๐Ÿ“œ alt! returns Incomplete if a child parser returned Incomplete, instead of skipping to the next parser
    • IResult does not require a lifetime tag anymore, yay!

    โž• Added

    • ๐Ÿ“œ complete! will return an error if the child parser returned Incomplete
    • add_error! will wrap an error, but allow backtracking
    • ๐Ÿ“œ hex_u32 parser

    ๐Ÿ›  Fixed

    • ๐Ÿ“œ the behaviour around Incomplete is better for most parsers now