All Versions
60
Latest Version
Avg Release Cycle
71 days
Latest Release
984 days ago

Changelog History
Page 3

  • v3.2.1 Changes

    October 27, 2017

    Thanks

    • ๐Ÿ›  @ordian for alt_complete fixes
    • ๐Ÿ“š @friedm for documentation fixes
    • @kali for improving error management

    ๐Ÿ›  Fixed

    • there were cases where alt_complete could return Incomplete

    โž• Added

    • an into_error_kind method can be used to transform any error to a common value. This helps when the library is included multiple times as dependency with different feature sets
  • v3.2.0 Changes

    July 24, 2017

    Thanks

    • ๐Ÿ“š @jedireza for documentation fixes
    • @gmorenz for the bytes combinator
    • ๐Ÿ›  @meh for character combinator fixes for UTF-8
    • ๐Ÿšš @jethrogb for avoiding move issues in separated_list

    ๐Ÿ”„ Changed

    • ๐Ÿ†• new layout for the main page of documentation
    • anychar can now work on any input type
    • length_bytes is now an alias for length_data

    ๐Ÿ›  Fixed

    • one_of, none_of and char will now index correctly UTF-8 characters
    • the compiler_error macro is now correctly exported

    โž• Added

    • ๐Ÿ“œ the bytes combinator transforms a bit stream back to a byte slice for child parsers
  • v3.1.0 Changes

    June 16, 2017

    Thanks

    • @sdroege: implementing be_i24 and le_i24
    • @Hywan: integrating faster substring search using memchr
    • ๐Ÿ“œ @nizox: fixing type issues in bit stream parsing
    • ๐Ÿ“š @grissiom: documentation fixes
    • @doomrobo: implementing separated_list_complete and separated_nonempty_list_complete
    • @CWood1: fixing memchr integration in no_std
    • @lu_zero: integrating the compiler_error crate
    • @dtolnay: helping debug a type inference issue in map

    ๐Ÿ”„ Changed

    • memchr is used for substring search if possible
    • ๐Ÿ“š if building on nightly, some common syntax errors will display a specific error message. If building no stable, display the documentation to activate those messages
    • count no longer preallocates its vector

    ๐Ÿ›  Fixed

    • ๐Ÿ‘ better type inference in alt_complete
    • ๐Ÿ“œ alt should now work with whitespace parsing
    • map should not make type inference errors anymore

    โž• Added

    • be_i24 and le_i24, parsing big endian and little endian signed 24 bit integers
    • separated_list_complete and separated_nonempty_list_complete will treat incomplete from sub parsers as error
  • v3.0.0 Changes

    May 12, 2017

    Thanks

    • ๐Ÿ”จ Chris Pick for some Incomplete related refactors
    • ๐Ÿ“š @dbrgn for documentation fixes
    • @valarauca for adding be_u24
    • ๐Ÿ›  @ithinuel for usability fixes
    • ๐Ÿ›  @evuez for README readability fixes and improvements to IResult
    • @s3bk for allowing non-Copy types as input
    • ๐Ÿ“š @keruspe for documentation fixes
    • ๐Ÿ›  @0xd34d10cc for trait fixes on InputIter
    • @sdleffler for lifetime shenanigans on named_args
    • ๐Ÿ›  @chengsun for type inference fixes in alt
    • @iBelieve for adding str to no_std
    • @Hywan for simplifying code in input traits
    • ๐Ÿ“š @azerupi for extensive documentation of alt and alt_complete

    ๐Ÿ’ฅ Breaking Changes

    • escaped, separated_list and separated_nonempty_list can now return Incomplete when necessary
    • InputIter does not require AsChar on its Item type anymore
    • ๐Ÿšš the core feature that was putting nom in no_std mode has been removed. There is now a std feature, activated by default. If it is not activated, nom is in no_std
    • in verbose-errors mode, the error list is now stored in a Vec instead of a box based linked list
    • ๐Ÿšš chain! has finally been removed

    ๐Ÿ”„ Changed

    • ๐Ÿ‘ฏ Endianness now implements Debug, PartialEq, Eq, Clone and Copy
    • ๐Ÿ‘ฏ custom input types can now be cloned if they're not Copy
    • the infamous 'Cannot infer type for E' error should happen less often now
    • str is now available in no_std mode

    ๐Ÿ›  Fixed

    • FileProducer will be marked as Eof on full buffer
    • named_args! now has lifetimes that cannot conflict with the lifetimes from other arguments

    โž• Added

    • ๐Ÿ“œ be_u24: big endian 24 bit unsigned integer parsing
    • IResult now has a unwrap_or method
  • v2.2.1 Changes

    April 03, 2017

    Thanks

    • ๐Ÿ›  @Victor-Savu for formatting fixes in the README
    • @chifflier for detecting and fixing integer overflows
    • ๐ŸŽ @utkarshkukreti for some performance improvements in benchmarks

    ๐Ÿ”„ Changed

    • ๐Ÿš€ when calculating how much data is needed in IResult::Incomplete, the addition could overflow (it is stored as a usize). This would apparently not result in any security vulnerability on release code
  • v2.2.0 Changes

    March 20, 2017

    Thanks

    • @seppo0010 for fixing named_args
    • 0๏ธโƒฃ @keruspe for implementing or() on IResult, adding the option of default cases in switch!, adding support for cargo-travis
    • ๐Ÿ“š @timlyo for documentation fixes
    • @JayKickliter for extending hex_u32
    • @1011X for fixing regex integration
    • ๐Ÿ—„ @Kerollmops for actually marking chain! as deprecated
    • ๐Ÿ“š @joliss for documentation fixes
    • ๐ŸŽ @utkarshkukreti for tests refactoring and performance improvement
    • ๐Ÿ“š @tmccombs for documentation fixes

    โž• Added

    • IResult gets an or() method
    • take_until1, take_until_and_consume1, take_till1! and take_till1_s! require at least 1 character

    ๐Ÿ”„ Changed

    • hex_u32 accepts uppercase digits as well
    • the character based combinators leverage the input traits
    • ๐Ÿ“œ the whitespace parsers now work on &str and other types
    • take_while1 returns Incomplete on empty input
    • 0๏ธโƒฃ switch! can now take a default case

    ๐Ÿ›  Fixed

    • named_args! now imports IResult directly
    • โฌ†๏ธ the upgrade to regex 0.2 broke the regex combinators, they work now
  • v2.1.0 Changes

    January 27, 2017

    Thanks

    • ๐Ÿ“š @nickbabcock for documentation fixes
    • ๐Ÿ“š @derekdreery for documentation fixes
    • ๐Ÿ“š @DirkyJerky for documentation fixes
    • ๐Ÿ“š @saschagrunert for documentation fixes
    • ๐Ÿ“š @lucab for documentation fixes
    • ๐Ÿ“š @hyone for documentation fixes
    • @tstorch for factoring Slice
    • @shepmaster for adding crate categories
    • @antoyo for adding named_args!

    โž• Added

    • ๐Ÿ“œ verify! uses a first parser, then applies a function to check that its result satisfies some conditions
    • ๐Ÿ“œ named_args! creates a parser function that can accept other arguments along with the input
    • ๐Ÿ“œ parse_to! will use the parse method from FromStr to parse a value. It will automatically translate the input to a string if necessary
    • float, float_s, double, double_s can recognize floating point numbers in text

    ๐Ÿ”„ Changed

    • escaped! will now return Incomplete if needed
    • ๐Ÿ“œ permutation! supports up to 20 child parsers
  • v2.0.1 Changes

    December 10, 2016

    ๐Ÿ›  Bugfix release

    โš  Warning: there is a small breaking change, add_error! is renamed to add_return_error!. This was planned for the 2.0 release but was forgotten. This is a small change in a feature that not many people use, for a release that is not yet widely in use, so there will be no 3.0 release for that change.

    Thanks

    • @nickbabcock for catching and fixing the add_error! mixup
    • ๐Ÿ“š @lucab for documentation fixes
    • @jtdowney for noticing that tag_no_case! was not working at all for byte slices

    ๐Ÿ›  Fixed

    • add_error! has been renamed to add_return_error!
    • the not! combinator now accepts functions
    • tag_no_case! is now working as accepted (before, it accepted everything)
  • v2.0 Changes

    November 25, 2016

    ๐Ÿš€ The 2.0 release is one of the biggest yet. It was a good opportunity to clean up some badly named combinators and fix invalid behaviours.

    Since this version introduces a few breaking changes, an upgrade documentation is available, detailing the steps to fix the most common migration issues. After testing on a set of 30 crates, most of them will build directly, a large part will just need to activate the "verbose-errors" compilation feature. The remaining fixes are documented.

    ๐Ÿ‘ This version also adds a lot of interesting features, like the permutation combinator or whitespace separated formats support.

    Thanks

    • @lu-zero for license help
    • ๐Ÿ›  @adamgreig for type inference fixes
    • ๐Ÿ“š @keruspe for documentation and example fixes, for the IResult => Result conversion work, making AsChar's method more consistent, and adding many_till!
    • @jdeeny for implementing Offset on &str
    • @vickenty for documentation fixes and his refactoring of length_value! and length_bytes!
    • ๐Ÿ”จ @overdrivenpotato for refactoring some combinators
    • ๐Ÿ“š @taralx for documentation fixes
    • ๐Ÿ“š @keeperofdakeys for fixing eol behaviour, writing documentation and adding named_attr!
    • ๐Ÿ“š @jturner314 for writing documentation
    • @bozaro for fixing compilation errors
    • @uniphil for adding a crates.io badge
    • ๐Ÿ“š @badboy for documentation fixes
    • @jugglerchris for fixing take_s!
    • @AndyShiue for implementing Error and Display on ErrorKind and detecting incorrect UTF-8 string indexing

    โž• Added

    • 0๏ธโƒฃ the "simple" error management system does not accumulates errors when backtracking. This is a big perf gain, and is activated by default in nom 2.0
    • nom can now work on any type that implement the traits defined in src/traits.rs: InputLength, InputIter, InputTake, Compare, FindToken, FindSubstring, Slice
    • ๐Ÿ“š the documentation from Github's wiki has been moved to the doc/ directory. They are markdown files that you can build with cargo-external-doc
    • ๐Ÿ“œ whitespace separated format support: with the ws! combinator, you can automatically introduce whitespace parsers between all parsers and combinators
    • ๐Ÿ“œ the permutation! combinator applies its child parsers in any order, as long as they all succeed once, and return a tuple of the results
    • ๐Ÿ—„ do_parse! is a simpler alternative to chain!, which is now deprecated
    • you can now transform an IResult in a std::result::Result
    • ๐Ÿ“œ length_data! parses a length, and returns a subslice of that length
    • tag_no_case! provides case independent comparison. It works nicely, without any allocation, for ASCII strings, but for UTF-8 strings, it defaults to an unsatisfying (and incorrect) comparison by lowercasing both strings
    • ๐Ÿ“š named_attr! creates functions like named! but can add attributes like documentation
    • ๐Ÿ“œ many_till! applies repeatedly its first child parser until the second succeeds

    ๐Ÿ”„ Changed

    • the "verbose" error management that was available in previous versions is now activated by the "verbose-errors" compilation feature
    • ๐Ÿšš code reorganization: most of the parsers were moved in separate files to make the source easier to navigate
    • most of the combinators are now independent from the input type
    • the eof function was replaced with the eof! macro
    • error! and add_error! were replaced with return_error! and add_return_error! to fix the name conflict with the log crate
    • the offset() method is now in the Offset trait
    • length_value! has been renamed to length_count!. The new length_value! selects a slice and applies the second parser once on that slice
    • AsChar::is_0_to_9 is now AsChar::is_dec_digit
    • ๐Ÿ”ง the combinators with configurable endianness now take an enum instead of a boolean as parameter

    ๐Ÿ›  Fixed

    • ๐Ÿ›  the count!, count_fixed! and length_*! combinator calculate incomplete data needs correctly
    • eol, line_ending and not_line_ending now have a consistent behaviour that works correctly with incomplete data
    • take_s! didn't correctly handle the case when the slice is exactly the right length
  • v1.2.4 Changes

    July 20, 2016

    Thanks

    • ๐Ÿ“š @Phlosioneer for documentation fixes
    • @sourrust for fixing offsets in take_bits!
    • @ChrisMacNaughton for the XFS crate
    • @pwoolcoc for rest_s
    • @fitzgen for more IResult methods
    • @gtors for the negative lookahead feature
    • ๐Ÿ“œ @frk1 and @jeandudey for little endian float parsing
    • @jethrogb for fixing input usage in many1
    • @acatton for beating me at nom golf :D

    โž• Added

    • the rest_s method on IResult returns the remaining &str input
    • unwrap_err and unwrap_inc methods on IResult
    • ๐Ÿ“œ not! will peek at the input and return Done if the underlying parser returned Error or Incomplete, without consuming the input

    - le_f32 and le_f64 parse little endian floating point numbers (IEEE 754)

    ๐Ÿ›  Fixed

    • ๐Ÿ“š documentation fixes
    • take_bits! is now more precise
    • many1 inccorectly used the len function instead of input_len
    • ๐Ÿ“œ the INI parser is simpler
    • ๐Ÿšš recognize! had an early return that is removed now