• Home
  • Raw
  • Download

Lines Matching +full:- +full:- +full:fixes

9 ## 7.1.3 - 2023-01-15
13 - @Shadow53
17 - panic in `many` and `count` combinators when the output type is zero sized
19 ## 7.1.2 - 2023-01-01
23 - @joubs
24 - @Fyko
25 - @LoganDark
26 - @darnuria
27 - @jkugelman
28 - @barower
29 - @puzzlewolf
30 - @epage
31 - @cky
32 - @wolthom
33 - @w1ll-i-code
37 - documentation fixes
38 - tests fixes
39 - limit the initial capacity of the result vector of `many_m_n` to 64kiB
40 - bits parser now accept `Parser` implementors instead of only functions
44 - implement `Tuple` parsing for the unit type as a special case
45 - implement `ErrorConvert` on the unit type to make it usable as error type for bits parsers
46 - bool parser for bits input
48 ## 7.1.1 - 2022-03-14
52 - @ThomasdenH
53 - @@SphinxKnight
54 - @irevoire
55 - @doehyunbaek
56 - @pxeger
57 - @punkeel
58 - @max-sixty
59 - @Xiretza
60 - @5c077m4n
61 - @erihsu
62 - @TheNeikos
63 - @LoganDark
64 - @nickelc
65 - @chotchki
66 - @ctrlcctrlv
71 - documentation fixes
72 - more examples
74 ## 7.1.0 - 2021-11-04
78 - @nickelc
79 - @Stargateur
80 - @NilsIrl
81 - @clonejo
82 - @Strytyp
83 - @schubart
84 - @jihchi
85 - @nipunn1313
86 - @Gungy2
87 - @Drumato
88 - @Alexhuszagh
89 - @Aehmlo
90 - @homersimpsons
91 - @dne
92 - @epage
93 - @saiintbrisson
94 - @pymongo
98 - documentation fixes
99 - Ci fixes
100 - the move to minimal-lexical for float parsing introduced bugs that cannot be resolved right now, …
104 - alt now works with 1 elment tuples
106 ## 7.0.0 - 2021-08-21
108 This release fixes dependency compilation issues and strengthen the minimum supported Rust version …
112 - @djc
113 - @homersimpsons
114 - @lo48576
115 - @myrrlyn
116 - @RalXYZ
117 - @nickelc
118 - @cenodis
122 - `take_until1` combinator
123 - more `to_owned` implementations
124 - `fail`: a parser that always fail, useful as default condition in other combinators
125 - text to number parsers: in the `character::streaming` and `character::complete` modules, there ar…
129 - now that function combinators are the main way to write parsers, the old macro combinators are co…
130 - the `BitSlice` input type from bitvec has been moved into the [nom-bitvec](https://crates.io/crat…
131 - regex parsers have been moved into the [nom-regex](https://crates.io/crates/nom-regex) crate. nom…
132 - `ErrorKind::PArseTo` was not needed anymore
136 - relax trait bounds
137 - some performance fixes
138 - `split_at_position*` functions should now be guaranteed panic free
139 - the `lexical-core` crate used for float parsing has now been replaced with `minimal-lexical`: the…
143 - infinite loop in `escaped` combinator
144 - `many_m_n` now fails if min > max
147 ## 6.2.1 - 2021-06-23
153 - @homersimpsons
157 - fix documentation building
159 ## 6.2.0 - 2021-02-15
165 - @DavidKorczynski
166 - @homersimpsons
167 - @kornelski
168 - @lf-
169 - @lewisbelcher
170 - @ronan-d
171 - @weirane
172 - @heymind
173 - @marcianx
174 - @Nukesor
178 - nom is now regularly fuzzed through the OSSFuzz project
182 - lots of documentation fixes
183 - relax trait bounds
184 - workarounds for dependency issues with bitvec and memchr
186 ## 6.1.2 - 2021-02-15
190 - Fix cargo feature usage in previous release
192 ## 6.1.1 - 2021-02-15
198 - @nickelc
202 - Fix dependenciy incompatibilities: Restrict the bitvec->funty dependency to <=1.1
204 ## 6.1.0 - 2021-01-23
210 - @sachaarbonel
211 - @vallentin
212 - @Lucretiel
213 - @meiomorphism
214 - @jufajardini
215 - @neithernut
216 - @drwilco
220 - readme and documentation fixes
221 - rewrite of fold_many_m_n
222 - relax trait bounds on some parsers
223 - implement `std::error::Error` on `VerboseError`
226 ## 6.0.1 - 2020-11-24
232 - @Leonqn
233 - @nickelc
234 - @toshokan
235 - @juchiast
236 - @shssoichiro
237 - @jlkiri
238 - @chifflier
239 - @fkloiber
240 - @Kaoet
241 - @Matthew Plant
245 - `ErrorConvert` implementation for `VerboseError`
249 - CI fixes
250 - `fold_many*` now accept `FnMut` for the accumulation function
251 - relaxed input bounds on `length_count`
255 - documentation fixes
256 - the `#[deprecated]` attribute was removed from traits because it does not compile anymore on nigh…
257 - bits and bytes combinators from the bits modules are now converted to use `FnMut`
259 ## 6.0.0 - 2020-10-31
264 - @chifflier
265 - @shepmaster
266 - @amerelo
267 - @razican
268 - @Palladinium
269 - @0ndorio
270 - Sebastian Zivota
271 - @keruspe
272 - @devonhollowood
273 - @parasyte
274 - @nnt0
275 - @AntoineCezar
276 - @GuillaumeGomez
277 - @eijebong
278 - @stadelmanma
279 - @sphynx
280 - @snawaz
281 - @fosskers
282 - @JamesHarrison
283 - @calebsander
284 - @jthornber
285 - @ahmedcharles
286 - @rljacobson
287 - @benkay86
288 - @georgeclaghorn
289 - @TianyiShi2001
290 - @shnewto
291 - @alfriadox
292 - @resistor
293 - @myrrlyn
294 - @chipsenkbeil
295 - @ruza-net
296 - @fanf2
297 - @jameysharp
298 - @FallenWarrior2k
299 - @jmg-duarte
300 - @ericseppanen
301 - @hbina
302 - Andreas Molzer
303 - @nickelc
304 - @bgourlie
333 - the minimal Rust version is now 1.44 (1.37 if building without the `alloc` or `std` features)
334 - streaming parsers return the number of additional bytes they need, not the total. This was suppos…
335 - removed the `regexp_macros` cargo feature
336 - the `context` combinator is not linked to `ParseError` anymore, instead it come with its own `Con…
337 - `Needed::Size` now contains a `NonZeroUsize`, so we can reduce the structure's size by 8 bytes. W…
338 - there is now a more general `Parser` trait, so parsers can be something else than a function. Thi…
339 - combinators that returned a `impl Fn` now return a `impl FnMut` to allow parser closures that cap…
340 - `separated_list` is now `separated_list0`
341 - removed the deprecated `methods` module
342 - removed the deprecated `whitespace` module
343 - the default error type is now a struct (`nom::error::Error`) instead of a tuple
344 - the `FromExternalError` allows wrapping the error returned by the function in the `map_res` combi…
345 - renamed the `dbg!` macro to avoid conflicts with `std::dbg!`
346 - `separated_list` now allows empty elements
351 - function version of regex parsers
352 - `fill`: attempts to fill the output slice passed as argument
353 - `success`: returns a value without consuming the input
354 - `satisfy`: checks a predicate over the next character
355 - `eof` function combinator
356 - `consumed`: returns the produced value and the consumed input
357 - `length_count` function combinator
358 - `into`: converts a parser's output and error values if `From` implementations are available
359 - `IResult::finish()`: converts a parser's result to `Result<(I, O), E>` by removing the distinctio…
360 - non macro versions of `u16`, `i32`, etc, with configurable endianness
361 - `is_newline` function
362 - `std::error::Error` implementation for nom's error types
363 - recipes section of the documentation, outlining common patterns in nom
364 - custom errors example
365 - bitstream parsing with the `BitSlice` type from the bitvec crate
366 - native endianness parsers
367 - github actions for CI
371 - allows lexical-core 0.7
372 - number parsers are now generic over the input type
373 - stabilized the `alloc` feature
374 - `convert_error` accepts a type that derefs to `&str`
375 - the JSON example now follows the spec better
378 - use `fold_many0c` in the `fold_many0` macro
380 ## 5.1.1 - 2020-02-24
384 - @Alexhuszagh for float fixes
385 - @AlexanderEkdahl, @JoshOrndorff, @akitsu-sanae for docs fixes
386 - @ignatenkobrain: dependency update
387 - @derekdreery: `map` implementation for errors
388 - @Lucretiel for docs fixes and compilation fixes
389 - adytzu2007: warning fixes
390 - @lo48576: error management fixes
394 - C symbols compilation errors due to old lexical-core version
398 - `Err` now has a `map` function
402 - Make `error::context()` available without `alloc` feature
404 ## 5.1.0 - 2020-01-07
408 - @Hywan, @nickmooney, @jplatte, @ngortheone, @ejmg, @SirWindfield, @demurgos, @spazm, @nyarly, @gu…
409 - @Alxandr for error management bugfixes
410 - @Lucretiel for example fixes and optimizations
411 - @adytzu2007 for optimizations
412 - @audunhalland for utf8 fixes
416 - panic in `convert_error`
417 - `compile_error` macro usage
421 - `std::error::Error`, `std::fmt::Display`, `Eq`, `ToOwned` implementations for errors
422 - inline attribute for `ToUsize`
426 - `convert_error` optimization
427 - `alt` optimization
429 ## 5.0.1 - 2019-08-22
433 - @waywardmonkeys, @phaazon, @dalance for docs fixes
434 - @kali for `many0_m_n` fixes
435 - @ia0 for macros fixes
439 - `many0_m_n` now supports the n=1 case
440 - relaxed trait requirements in `cut`
441 - `peek!` macro reimplementation
442 - type inference in `value!`
444 ## 5.0.0 - 2019-06-24
455 The `verbose-errors` feature is gone, now the error type is decided through a generic
456 bound. To get equivalent behaviour to `verbose-errors`, check out `nom::error::VerboseError`
460 - @lowenheim helped in refactoring and error management
461 - @Keruspe helped in refactoring and fixing tests
462 - @pingiun, @Songbird0, @jeremystucki, @BeatButton, @NamsooCho, @Waelwindows, @rbtcollins, @MarkMcC…
463 - @GuillaumeGomez for documentation rewriting and checking
464 - @iosmanthus for bug fixes
465 - @lo48576 for error management fixes
466 - @vaffeine for macros visibility fixes
467 - @webholik and @Havvy for `escaped` and `escaped_transform` fixes
468 - @proman21 for help on porting bits parsers
472 - the `VerboseError` type accumulates position info and error codes, and can generate a trace with …
473 - the `lexical-core` crate is now used by default (through the `lexical` compilation feature) to pa…
474 - documentation and code examples for all functions and macros
478 - nom now uses functions instead of macros to generate parsers
479 - macros now use the functions under the hood
480 - the minimal Rust version is now 1.31
481 - the verify combinator's condition function now takes its argument by reference
482 - `cond` will now return the error of the parser instead of None
483 - `alpha*`, `digit*`, `hex_digit*`, `alphanumeric*` now recognize only ASCII characters
487 - deprecated string parsers (with the `_s` suffix), the normal version can be used instead
488 - `verbose-errors` is not needed anymore, now the error type can be decided when writing the parser…
489 - `AtEof`, `CompleteByteSlice` and `CompleteStr` are gone, instead some parsers are specialized to …
490 - character parsers that were aliases to their `*1` version: eol, alpha, digit, hex_digit, oct_digi…
491 - `count_fixed` macro
492 - `whitespace::sp` can be replaced by `character::complete::multispace0`
493 - method combinators are now in the nom-methods crate
494 - `take_until_either`, `take_until_either1`, `take_until_either_and_consume` and `take_until_either…
495 - `take_until_and_consume`, `take_until_and_consume1`: they can be replaced with `take_until` combi…
496 - `sized_buffer` and `length_bytes!`: they can be replaced with the `length_data` function
497 - `non_empty`, `begin` and `rest_s` function
498 - `cond_reduce!`, `cond_with_error!`, `closure!`, `apply`, `map_res_err!`, `expr_opt!`, `expr_res!`
499 - `alt_complete`, `separated_list_complete`, `separated_nonempty_list_complete`
501 ## 4.2.3 - 2019-03-23
505 - add missing `build.rs` file to the package
506 - fix code comparison links in changelog
508 ## 4.2.2 - 2019-03-04
512 - regression in do_parse macro import for edition 2018
514 ## 4.2.1 - 2019-02-27
518 - macro expansion error in `do_parse` due to `compile_error` macro usage
520 ## 4.2.0 - 2019-01-29
524 - @JoshMcguigan for unit test fixes
525 - @oza for documentation fixes
526 - @wackywendell for better error conversion
527 - @Zebradil for documentation fixes
528 - @tsraom for new combinators
529 - @hcpl for minimum Rust version tests
530 - @KellerFuchs for removing some unsafe uses in float parsing
534 - macro import in edition 2018 code should work without importing internal macros now
535 - the regex parsers do not require the calling code to have imported the regex crate anymore
536 - error conversions are more ergonomic
537 - method combinators are now deprecated. They might be moved to a separate crate
538 - nom now specifies Rust 1.24.1 as minimum version. This was already the case before, now it is mad…
542 - `many0_count` and `many1_count` to count applications of a parser instead of
547 - overflow in the byte wrapper for bit level parsers
548 - `f64` parsing does not use `transmute` anymore
550 ## 4.1.1 - 2018-10-14
554 - compilation issue in verbose-errors mode for `add_return_error`
556 ## 4.1.0 - 2018-10-06
560 - @xfix for fixing warnings, simplifying examples and performance fixes
561 - @dvberkel for documentation fixes
562 - @chifflier for fixing warnings
563 - @myrrlyn for dead code elimination
564 - @petrochenkov for removing redundant test macros
565 - @tbelaire for documentation fixes
566 - @khernyo for fixing warnings
567 - @linkmauve for documentation fixes
568 - @ProgVal for documentation fixes, warning fixes and error management
569 - @Nemo157 for compilation fixes
570 - @RReverser for documentation fixes
571 - @xpayn for fixing warnings
572 - Blas Rodriguez Irizar for documentation fixes
573 - @badboy for documentation fixes
574 - @kyrias for compilation fixes
575 - @kurnevsky for the `rest_len` parser
576 - @hjr3 for new documentation examples
577 - @fengalin for error management
578 - @ithinuel for the pcap example project
579 - @phaazon for documentation fixes
580 - @juchiast for documentation fixes
581 - @jrakow for the `u128` and `i128` parsers
582 - @smarnach for documentation fixes
583 - @derekdreery for `pub(crate)` support
584 - @YaLTeR for `map_res_err!`
588 - `rest_len` parser, returns the length of the remaining input
589 - `parse_to` has its own error code now
590 - `u128` and `i128` parsers in big and little endian modes
591 - support for `pub(crate)` syntax
592 - `map_res_err!` combinator that appends the error of its argument function in verbose errors mode
596 - lots of unused imports warnings were removed
597 - the `bytes` combinator was not compiling in some cases
598 - the big and little endian combinators now work without external imports
599 - CI is now faster and uses less cache
600 - in `add_return_error`, the provided error code is now evaluated only once
604 - `fold_many1` will now transmit a `Failure` instead of transforming it to an `Error`
605 - `float` and `double` now work on all of nom's input types (`&[u8]`, `&str`, `CompleteByteSlice`, …
606 - `CompleteByteSlice` and `CompleteStr` get a small optimization by inlining some functions
609 ## 4.0.0 - 2018-05-14
613 - @jsgf for the new `AtEof` trait
614 - @tmccombs for fixes on `escaped*` combinators
615 - @s3bk for fixes around non Copy input types and documentation help
616 - @kamarkiewicz for fixes to no_std and CI
617 - @bheisler for documentation and examples
618 - @target-san for simplifying the `InputIter` trait for `&[u8]`
619 - @willmurphyscode for documentation and examples
620 - @Chaitanya1416 for typo fixes
621 - @fflorent for `input_len()` usage fixes
622 - @dbrgn for typo fixes
623 - @iBelieve for no_std fixes
624 - @kpp for warning fixes and clippy fixes
625 - @keruspe for fixes on FindToken
626 - @dtrebbien for fixes on take_until_and_consume1
627 - @Henning-K for typo fixes
628 - @vthriller for documentation fixes
629 - @federicomenaquintero and @veprbl for their help fixing the float parsers
630 - @vmchale for new named_args versions
631 - @hywan for documentation fixes
632 - @fbenkstein for typo fixes
633 - @CAD97 for catching missing trait implementations
634 - @goldenlentils for &str optimizations
635 - @passy for typo fixes
636 - @ayrat555 for typo fixes
637 - @GuillaumeGomez for documentation fixes
638 - @jrakow for documentation fixes and fixes for `switch!`
639 - @phlosioneer for documentation fixes
640 - @creativcoder for typo fixes
641 - @derekdreery for typo fixes
642 - @lucasem for implementing `Deref` on `CompleteStr` and `CompleteByteSlice`
643 - @lowenheim for `parse_to!` fixes
644 - @myrrlyn for trait fixes around `CompleteStr` and `CompleteByteSlice`
645 - @NotBad4U for fixing code coverage analysis
646 - @murarth for code formatting
647 - @glandium for fixing build in no_std
648 - @csharad for regex compatibility with `CompleteStr`
649 - @FauxFaux for implementing `AsRef<str>` on `CompleteStr`
650 - @jaje for implementing `std::Error` on `nom:Err`
651 - @fengalin for warning fixes
652 - @@khernyo for doc formatting
658 - the `IResult` type now becomes a `Result` from the standard library
659 - `Incomplete` now returns the additional data size needed, not the total data size needed
660 - verbose-errors is now a superset of basic errors
661 - all the errors now include the related input slice
662 - the arguments from `error_position` and other such macros were swapped to be more consistent with…
663 - automatic error conversion: to fix error type inference issues, a custom error type must now impl…
664 - the `not!` combinator returns unit `()`
665 - FindToken's calling convention was swapped
666 - the `take_*` combinators are now more coherent and stricter, see commit 484f6724ea3ccb for more i…
667 - `many0` and other related parsers will now return `Incomplete` if the reach the end of input with…
668 - the `sep!` combinator for whitespace only consumes whitespace in the prefix, while the `ws!` comb…
672 - the `AtEof` trait for input type: indicate if we can get more input data later (related to stream…
673 - the `escaped*` parsers now support the `&str`input type
674 - the `Failure` error variant represents an unrecoverable error, for which `alt` and other combinat…
675 - the `CompleteByteSlice` and `CompleteStr` input types consider there will be no more refill of th…
676 - the `exact!()` combinator will fail if we did not consume the whole input
677 - the `take_while_m_n!` combinator will match a specified number of characters
678 - `ErrorKind::TakeUntilAndConsume1`
679 - the `recognize_float` parser will match a float number's characters, but will not transform to a …
680 - `alpha` and other basic parsers are now much stricter about partial inputs. We also introduce the…
681 - `named_args` can now specify the input type as well
682 - `HexDisplay` is now implemented for `&str`
683 - `alloc` feature
684 - the `InputTakeAtposition` trait allows specialized implementations of parsers like `take_while!`
688 - the producers and consumers were removed
689 - the `error_code` and `error_node` macros are not used anymore
693 - `anychar!` now works correctly with multibyte characters
694 - `take_until_and_consume1!` no longer results in "no method named \`find_substring\`" and "no meth…
695 - `take_until_and_consume1!` returns the correct Incomplete(Needed) amount
696 - `no_std` compiles properly, and nom can work with `alloc` too
697 - `parse_to!` now consumes its input
701 - `alt` and other combinators will now clone the input if necessary. If the input is already `Copy`…
702 - the `rest` parser now works on various input types
703 - `InputIter::Item` for `&[u8]` is now a `u8` directly, not a reference
704 - we now use the `compile_error` macro to return a compile time error if there was a syntax issue
705 - the permutation combinator now supports optional child parsers
706 - the float numbers parsers have been refactored to use one common implementation that is nearly 2 …
707 - the float number parsers now accept more variants
710 ## 3.2.1 - 2017-10-27
714 - @ordian for `alt_complete` fixes
715 - @friedm for documentation fixes
716 - @kali for improving error management
720 - there were cases where `alt_complete` could return `Incomplete`
724 - an `into_error_kind` method can be used to transform any error to a common value. This helps when…
727 ## 3.2.0 - 2017-07-24
731 - @jedireza for documentation fixes
732 - @gmorenz for the `bytes` combinator
733 - @meh for character combinator fixes for UTF-8
734 - @jethrogb for avoiding move issues in `separated_list`
738 - new layout for the main page of documentation
739 - `anychar` can now work on any input type
740 - `length_bytes` is now an alias for `length_data`
744 - `one_of`, `none_of` and `char` will now index correctly UTF-8 characters
745 - the `compiler_error` macro is now correctly exported
750 - the `bytes` combinator transforms a bit stream back to a byte slice for child parsers
752 ## 3.1.0 - 2017-06-16
756 - @sdroege: implementing be_i24 and le_i24
757 - @Hywan: integrating faster substring search using memchr
758 - @nizox: fixing type issues in bit stream parsing
759 - @grissiom: documentation fixes
760 - @doomrobo: implementing separated_list_complete and separated_nonempty_list_complete
761 - @CWood1: fixing memchr integration in no_std
762 - @lu_zero: integrating the compiler_error crate
763 - @dtolnay: helping debug a type inference issue in map
767 - memchr is used for substring search if possible
768 - if building on nightly, some common syntax errors will display a specific error message. If build…
769 - `count` no longer preallocates its vector
773 - better type inference in alt_complete
774 - `alt` should now work with whitespace parsing
775 - `map` should not make type inference errors anymore
779 - be_i24 and le_i24, parsing big endian and little endian signed 24 bit integers
780 - `separated_list_complete` and `separated_nonempty_list_complete` will treat incomplete from sub p…
782 ## 3.0.0 - 2017-05-12
786 - Chris Pick for some `Incomplete` related refactors
787 - @dbrgn for documentation fixes
788 - @valarauca for adding `be_u24`
789 - @ithinuel for usability fixes
790 - @evuez for README readability fixes and improvements to `IResult`
791 - @s3bk for allowing non-`Copy` types as input
792 - @keruspe for documentation fixes
793 - @0xd34d10cc for trait fixes on `InputIter`
794 - @sdleffler for lifetime shenanigans on `named_args`
795 - @chengsun for type inference fixes in `alt`
796 - @iBelieve for adding str to no_std
797 - @Hywan for simplifying code in input traits
798 - @azerupi for extensive documentation of `alt` and `alt_complete`
802 - `escaped`, `separated_list` and `separated_nonempty_list` can now return `Incomplete` when necess…
803 - `InputIter` does not require `AsChar` on its `Item` type anymore
804 - the `core` feature that was putting nom in `no_std` mode has been removed. There is now a `std` f…
805 - in `verbose-errors` mode, the error list is now stored in a `Vec` instead of a box based linked l…
806 - `chain!` has finally been removed
810 - `Endianness` now implements `Debug`, `PartialEq`, `Eq`, `Clone` and `Copy`
811 - custom input types can now be cloned if they're not `Copy`
812 - the infamous 'Cannot infer type for E' error should happen less often now
813 - `str` is now available in `no_std` mode
817 - `FileProducer` will be marked as `Eof` on full buffer
818 - `named_args!` now has lifetimes that cannot conflict with the lifetimes from other arguments
822 - `be_u24`: big endian 24 bit unsigned integer parsing
823 - `IResult` now has a `unwrap_or` method
826 ## 2.2.1 - 2017-04-03
830 - @Victor-Savu for formatting fixes in the README
831 - @chifflier for detecting and fixing integer overflows
832 - @utkarshkukreti for some performance improvements in benchmarks
836 - when calculating how much data is needed in `IResult::Incomplete`, the addition could overflow (i…
838 ## 2.2.0 - 2017-03-20
842 - @seppo0010 for fixing `named_args`
843 - @keruspe for implementing or() on `IResult`, adding the option of default cases in `switch!`, add…
844 - @timlyo for documentation fixes
845 - @JayKickliter for extending `hex_u32`
846 - @1011X for fixing regex integration
847 - @Kerollmops for actually marking `chain!` as deprecated
848 - @joliss for documentation fixes
849 - @utkarshkukreti for tests refactoring and performance improvement
850 - @tmccombs for documentation fixes
854 - `IResult` gets an `or()` method
855 - `take_until1`, `take_until_and_consume1`, `take_till1!` and `take_till1_s!` require at least 1 ch…
859 - `hex_u32` accepts uppercase digits as well
860 - the character based combinators leverage the input traits
861 - the whitespace parsers now work on &str and other types
862 - `take_while1` returns `Incomplete` on empty input
863 - `switch!` can now take a default case
867 - `named_args!` now imports `IResult` directly
868 - the upgrade to regex 0.2 broke the regex combinators, they work now
870 ## 2.1.0 - 2017-01-27
874 - @nickbabcock for documentation fixes
875 - @derekdreery for documentation fixes
876 - @DirkyJerky for documentation fixes
877 - @saschagrunert for documentation fixes
878 - @lucab for documentation fixes
879 - @hyone for documentation fixes
880 - @tstorch for factoring `Slice`
881 - @shepmaster for adding crate categories
882 - @antoyo for adding `named_args!`
886 - `verify!` uses a first parser, then applies a function to check that its result satisfies some co…
887 - `named_args!` creates a parser function that can accept other arguments along with the input
888 - `parse_to!` will use the `parse` method from `FromStr` to parse a value. It will automatically tr…
889 - `float`, `float_s`, `double`, `double_s` can recognize floating point numbers in text
893 - `escaped!` will now return `Incomplete` if needed
894 - `permutation!` supports up to 20 child parsers
896 ## 2.0.1 - 2016-12-10
904 - @nickbabcock for catching and fixing the `add_error!` mixup
905 - @lucab for documentation fixes
906 - @jtdowney for noticing that `tag_no_case!` was not working at all for byte slices
910 - `add_error!` has been renamed to `add_return_error!`
911 - the `not!` combinator now accepts functions
912 - `tag_no_case!` is now working as accepted (before, it accepted everything)
915 ## 2.0 - 2016-11-25
919 …a large part will just need to activate the "verbose-errors" compilation feature. The remaining fi…
925 - @lu-zero for license help
926 - @adamgreig for type inference fixes
927 - @keruspe for documentation and example fixes, for the `IResult => Result` conversion work, making…
928 - @jdeeny for implementing `Offset` on `&str`
929 - @vickenty for documentation fixes and his refactoring of `length_value!` and `length_bytes!`
930 - @overdrivenpotato for refactoring some combinators
931 - @taralx for documentation fixes
932 - @keeperofdakeys for fixing eol behaviour, writing documentation and adding `named_attr!`
933 - @jturner314 for writing documentation
934 - @bozaro for fixing compilation errors
935 - @uniphil for adding a `crates.io` badge
936 - @badboy for documentation fixes
937 - @jugglerchris for fixing `take_s!`
938 - @AndyShiue for implementing `Error` and `Display` on `ErrorKind` and detecting incorrect UTF-8 st…
942 - the "simple" error management system does not accumulates errors when backtracking. This is a big…
943 - nom can now work on any type that implement the traits defined in `src/traits.rs`: `InputLength`,…
944 - the documentation from Github's wiki has been moved to the `doc/` directory. They are markdown fi…
945 - whitespace separated format support: with the `ws!` combinator, you can automatically introduce w…
946 - the `permutation!` combinator applies its child parsers in any order, as long as they all succeed…
947 - `do_parse!` is a simpler alternative to `chain!`, which is now deprecated
948 - you can now transform an `IResult` in a `std::result::Result`
949 - `length_data!` parses a length, and returns a subslice of that length
950 - `tag_no_case!` provides case independent comparison. It works nicely, without any allocation, for…
951 - `named_attr!` creates functions like `named!` but can add attributes like documentation
952 - `many_till!` applies repeatedly its first child parser until the second succeeds
956 - the "verbose" error management that was available in previous versions is now activated by the "v…
957 - code reorganization: most of the parsers were moved in separate files to make the source easier t…
958 - most of the combinators are now independent from the input type
959 - the `eof` function was replaced with the `eof!` macro
960 - `error!` and `add_error!` were replaced with `return_error!` and `add_return_error!` to fix the n…
961 - the `offset()` method is now in the `Offset` trait
962 - `length_value!` has been renamed to `length_count!`. The new `length_value!` selects a slice and …
963 - `AsChar::is_0_to_9` is now `AsChar::is_dec_digit`
964 - the combinators with configurable endianness now take an enum instead of a boolean as parameter
967 - the `count!`, `count_fixed!` and `length_*!` combinator calculate incomplete data needs correctly
968 - `eol`, `line_ending` and `not_line_ending` now have a consistent behaviour that works correctly w…
969 - `take_s!` didn't correctly handle the case when the slice is exactly the right length
971 ## 1.2.4 - 2016-07-20
974 - @Phlosioneer for documentation fixes
975 - @sourrust for fixing offsets in `take_bits!`
976 - @ChrisMacNaughton for the XFS crate
977 - @pwoolcoc for `rest_s`
978 - @fitzgen for more `IResult` methods
979 - @gtors for the negative lookahead feature
980 - @frk1 and @jeandudey for little endian float parsing
981 - @jethrogb for fixing input usage in `many1`
982 - @acatton for beating me at nom golf :D
985 - the `rest_s` method on `IResult` returns the remaining `&str` input
986 - `unwrap_err` and `unwrap_inc` methods on `IResult`
987 - `not!` will peek at the input and return `Done` if the underlying parser returned `Error` or `Inc…
988 - `le_f32` and `le_f64` parse little endian floating point numbers (IEEE 754)
989 -
992 - documentation fixes
993 - `take_bits!` is now more precise
994 - `many1` inccorectly used the `len` function instead of `input_len`
995 - the INI parser is simpler
996 - `recognize!` had an early `return` that is removed now
998 ## 1.2.3 - 2016-05-10
1001 - @lu-zero for the contribution guidelines
1002 - @GuillaumeGomez for fixes on `length_bytes` and some documentation
1003 - @Hywan for documentation and test fixes
1004 - @Xirdus for correct trait import issues
1005 - @mspiegel for the new AST example
1006 - @cholcombe973 for adding the `cond_with_error!` combinator
1007 - @tstorch for refactoring `many0!`
1008 - @panicbit for the folding combinators
1009 - @evestera for `separated_list!` fixes
1010 - @DanielKeep for correcting some enum imports
1013 - Regular expression combinators starting with `re_bytes_` work on byte slices
1014 - example parsing arithmetic expressions to an AST
1015 - `cond_with_error!` works like `cond!` but will return `None` if the condition is false, and `Some…
1016 - `fold_many0!`, `fold_many1!` and `fold_many_m_n!` will take a parser, an initial value and a comb…
1019 - `length_bytes!` converts the result of its child parser to usize
1020 - `take_till!` now imports `InputLength` instead of assuming it's in scope
1021 - `separated_list!` and `separated_nonempty_list!` will not consume the separator if there's no fol…
1022 - no more warnings on build
1025 - simpler implementation of `many0!`
1027 ## 1.2.2 - 2016-03-09
1030 - @conradev for fixing `take_until_s!`
1031 - @GuillaumeGomez for some documentation fixes
1032 - @frewsxcv for some documentation fixes
1033 - @tstorch for some test refactorings
1036 - `nom::Err` now implements `std::error::Error`
1039 - `hex_u32` does not parses more than 8 chars now
1040 - `take_while!` and `take_while1!` will not perturb the behaviour of `recognize!` anymore
1042 ## 1.2.1 - 2016-02-23
1045 - @sourrust for adding methods to `IResult`
1046 - @tstorch for the test refactoring, and for adding methods to `IResult` and `Needed`
1047 - @joelself for fixing the method system
1051 - mapping methods over `IResult` and `Needed`
1055 - `apply_rf` is renamed to `apply_m`. This will not warrant a major version, since it is part missi…
1056 - the `regexp_macros` feature that used `regex!` to precompile regular expressions has been replace…
1060 - when a parser or combinator was returning an empty buffer as remaining part, it was generating on…
1061 - The `regexp_macros` and `no_std` feature build again and are now tested with Travis CI
1063 ## 1.2.0 - 2016-02-08
1066 - @zentner-kyle for type inference fixes
1067 - @joelself for his work on `&str` parsing and method parsers
1068 - @GuillaumeGomez for implementing methods on `IResult`
1069 - @dirk for the `alt_complete!` combinator
1070 - @tstorch for a lot of refactoring work and unit tests additions
1071 - @jansegre for the hex digit parsers
1072 - @belgum for some documentation fixes
1073 - @lwandrebeck for some documentation fixes and code fixes in `hex_digit`
1076 - `take_until_and_consume_s!` for consumption of string data until a tag
1077 - more function patterns in `named!`. The error type can now be specified
1078 - `alt_complete!` works like the `alt!` combinator, but tries the next branch if the current one re…
1079 - more unit tests for a lot of combinators
1080 - hexadecimal digit parsers
1081 - the `tuple!` combinator takes a list of parsers as argument, and applies them serially on the inp…
1082 - parsers can now be implemented as a method for a struct thanks to the `method!`, `call_m!` and `a…
1085 - there were type inference issues in a few combinators. They will now be easier to compile
1086 - `peek!` compilation with bare functions
1087 - `&str` parsers were splitting data at the byte level, not at the char level, which can result in …
1088 - some method implementations were missing on `IResult<I,O,E>` (with specified error type instead o…
1090 ## 1.1.0 - 2016-01-01
1097 There are also a few performance improvements and documentation fixes.
1100 - @Binero for pushing the work on `&str` parsing
1101 - @meh for fixing `Option` and `Vec` imports
1102 - @hoodie for a documentation fix
1103 - @joelself for some documentation fixes
1104 - @vberger for his traits magic making nom functions more generic
1108 - string related parsers: `tag_s!`, `take_s!`, `is_a_s!`, `is_not_s!`, `take_while_s!`, `take_while…
1109 - `value!` is a combinator that always returns the same value. If a child parser is passed as secon…
1113 - `tag!` will now compare even on partial input. If it expects "abcd" but receives "ef", it will no…
1114 - `many0!` and others will preallocate a larger vector to avoid some copies and reallocations
1115 - `alpha`, `digit`, `alphanumeric`, `space` and `multispace` now accept as input a `&[u8]` or a `&s…
1116 - `take_while!`, `take_while1!`, `take_while_s!`, `take_while1_s!` wilreturn an error on empty input
1120 - if the child parser of `many0!` or `many1!` returns `Incomplete`, it will return `Incomplete` too…
1121 - `Option,` `Some`, `None` and `Vec` are now used with full path imports
1123 ## 1.0.1 - 2015-11-22
1128 - @steveklabnik for fixing lifetime issues in Producers and Consumers
1130 ## 1.0.0 - 2015-11-16
1135 - @ahenry for macro fixes
1136 - @bluss for fixing documentation
1137 - @sourrust for cleaning code and debugging the new streaming utilities
1138 - @meh for inline optimizations
1139 - @ccmtaylor for fixing function imports
1140 - @soro for improvements to the streaming utilities
1141 - @breard-r for catching my typos
1142 - @nelsonjchen for catching my typos too
1143 - @divarvel for hex string parsers
1144 - @mrordinaire for the `length_bytes!` combinator
1147 - `IResult::Error` can now use custom error types, and is generic over the input type
1148 - Producers and consumers have been replaced. The new implementation uses less memory and integrate…
1149 - `nom::ErrorCode` is now `nom::ErrorKind`
1150 - `filter!` has been renamed to `take_while!`
1151 - `chain!` will count how much data is consumed and use that number to calculate how much data is n…
1152 - `alt!` returns `Incomplete` if a child parser returned `Incomplete`, instead of skipping to the n…
1153 - `IResult` does not require a lifetime tag anymore, yay!
1157 - `complete!` will return an error if the child parser returned `Incomplete`
1158 - `add_error!` will wrap an error, but allow backtracking
1159 - `hex_u32` parser
1162 - the behaviour around `Incomplete` is better for most parsers now
1164 ## 0.5.0 - 2015-10-16
1166 This release fixes a few issues and stabilizes the code.
1169 - @nox for documentation fixes
1170 - @daboross for linting fixes
1171 - @ahenry for fixing `tap!` and extending `dbg!` and `dbg_dmp!`
1172 - @bluss for tracking down and fixing issues with unsafe code
1173 - @meh for inlining parser functions
1174 - @ccmtaylor for fixing import of `str::from_utf8`
1177 - `tap!`, `dbg!` and `dbg_dmp!` now accept function parameters
1180 - the type used in `count_fixed!` must be `Copy`
1181 - `chain!` calculates how much data is needed if one of the parsers returns `Incomplete
1182 - optional parsers in `chain!` can return `Incomplete`
1184 ## 0.4.0 - 2015-09-08
1189 - @frewsxcv for documentation fixes
1190 - @ngrewe for his work on producers and consumers
1191 - @meh for fixes on `chain!` and for the `rest` parser
1192 - @daboross for refactoring `many0!` and `many1!`
1193 - @aleksander for the `switch!` combinator idea
1194 - @TechnoMancer for his help with bit level parsing
1195 - @sxeraverx for pointing out a bug in `is_a!`
1198 - `count_fixed!` must take an explicit type as argument to generate the fixed-size array
1199 - optional parsing behaviour in `chain!`
1200 - `count!` can take 0 elements
1201 - `is_a!` and `is_not!` can now consume the whole input
1204 - it is now possible to seek to the end of a `MemProducer`
1205 - `opt!` returns `Done(input, None)` if `the child parser returned `Incomplete`
1206 - `rest` will return the remaining input
1207 - consumers can now seek to and from the end of input
1208 - `switch!` applies a first parser then matches on its result to choose the next parser
1209 - bit-level parsers
1210 - character-level parsers
1211 - regular expression parsers
1212 - implementation of `take_till!`, `take_while!` and `take_while1!`
1215 - `alt!` can return `Incomplete`
1216 - the error analysis functions will now take references to functions instead of moving them
1217 - performance improvements on producers
1218 - performance improvement for `filter!`
1219 - performance improvement for `count!`: a `Vec` of the right size is directly allocated
1221 ## 0.3.11 - 2015-08-04
1224 - @bluss for remarking that the crate included random junk lying non committed in my local reposito…
1227 - cleanup of my local repository will ship less files in the crates, resulting in a smaller download
1229 ## 0.3.10 - 2015-08-03
1233 - `bits!` for bit level parsing. It indicates that all child parsers will take a `(&[u8], usize)`as…
1234 - `take_bits!` takes an integer type and a number of bits, consumes that number of bits and updates…
1235 - bit level parsers are all written in `src/bits.rs`
1239 - Parsers that specifically handle bytes have been moved to src/bytes.rs`. This applies to `tag!`, …
1241 ## 0.3.9 - 2015-07-20
1244 - @badboy for fixing `filter!`
1245 - @idmit for some documentation fixes
1248 - `opt_res!` applies a parser and transform its result in a Result. This parser never fails
1249 - `cond_reduce!` takes an expression as parameter, applies the parser if the expression is true, an…
1250 - `tap!` pass the result of a parser to a block to manipulate it, but do not affect the parser's re…
1251 - `AccReader` is a Read+BufRead that supports data accumulation and partial consumption. The `consu…
1252 - Arithmetic expression evaluation and parsing example
1253 - `u16!`, `u32!`, `u64!`, `i16!`, `i32!`, `i64!` take an expression as parameter, if the expression…
1254 - type information for combinators. This will make the documentation a bit easier to navigate
1257 - `map_opt!` and `map_res!` had issues with argument order due to bad macros
1258 - `delimited!` did not compile for certain combinations of arguments
1259 - `filter!` did not return a byte slice but a fixed array
1261 ## 0.3.8 - 2015-07-03
1264 - code coverage is now calculated automatically on Travis CI
1265 - `Stepper`: wrap a `Producer`, and call the method `step` with a parser. This method will buffer d…
1266 - `ReadProducer`: takes something implementing `Read`, and makes a `Producer` out of it
1269 - the combinators `separated_pair!` and `delimited!` did not work because an implementation macro w…
1270 - if a `MemProducer` reached its end, it should always return `Eof`
1271 - `map!` had issues with argument matching
1273 ## 0.3.7 - 2015-06-24
1276 - `expr_res!` and `expr_opt!` evaluate an expression returning a Result or Opt and convert it to IR…
1277 - `AsBytes` is implemented for fixed size arrays. This allows `tag!([41u8, 42u8])`
1280 - `count_fixed!` argument parsing works again
1282 ## 0.3.6 - 2015-06-15
1285 - documentation for a few functions
1286 - the consumer trait now requires the `failed(&self, error_code)` method in case of parsing error
1287 - `named!` now handles the alternative `named!(pub fun_name<OutputType>, ...)`
1290 - `filter!` now returns the whole input if the filter function never returned false
1291 - `take!` casts its argument as usize, so it can accepts any integer type now
1293 ## 0.3.5 - 2015-06-10
1296 - @cmr for some documentation fixes
1299 - `count_fixed!` returns a fixed array
1302 - `count!` is back to the previous behaviour, returning a `Vec` for sizes known at runtime
1305 - functions and traits exported from `nom::util` are now directly in `nom::`
1307 ## 0.3.4 - 2015-06-09
1310 - @andrew-d for fixes on `cond!`
1311 - @keruspe for features in `chain!`
1314 - `chain!` can now have mutable fields
1317 - `cond!` had an infinite macro recursion
1320 - `chain!` generates less code now. No apprent compilation time improvement
1322 ## 0.3.3 - 2015-06-09
1325 - @andrew-d for the little endian signed integer parsers
1326 - @keruspe for fixes on `count!`
1329 - `le_i8`, `le_i16`, `le_i32`, `le_i64`: little endian signed integer parsers
1332 - the `alt!` parser compiles much faster, even with more than 8 branches
1333 - `count!` can now return a fixed size array instead of a growable vector
1335 ## 0.3.2 - 2015-05-31
1338 - @keruspe for the `take_str` parser and the function application combinator
1341 - `take_str!`: takes the specified number of bytes and return a UTF-8 string
1342 - `apply!`: do partial application on the parameters of a function
1345 - `Needed::Size` now contains a `usize` instead of a `u32`
1347 ## 0.3.1 - 2015-05-21
1350 - @divarvel for the big endian signed integer parsers
1353 - `be_i8`, `be_i16`, `be_i32`, `be_i64`: big endian signed integer parsers
1354 - the `core` feature can be passed to cargo to build with `no_std`
1355 - colored hexdump can be generated from error chains
1357 ## 0.3.0 - 2015-05-07
1360 - @filipegoncalves for some documentation and the new eof parser
1361 - @CrimsonVoid for putting fully qualified types in the macros
1362 - @lu_zero for some documentation fixes
1365 - new error types that can contain an error code, an input slice, and a list of following errors
1366 - `error!` will cut backtracking and return directly from the parser, with a specified error code
1367 - `eof` parser, successful if there is no more input
1368 - specific error codes for the parsers provided by nom
1371 - fully qualified types in macros. A lot of imports are not needed anymore
1374 - `FlatMap`, `FlatpMapOpt` and `Functor` traits (replaced by `map!`, `map_opt!` and `map_res!`)
1376 ## 0.2.2 - 2015-04-12
1379 - @filipegoncalves and @thehydroimpulse for debugging an infinite loop in many0 and many1
1380 - @thehydroimpulse for suggesting public named parsers
1381 - @skade for removing the dependency on the collections gate
1384 - `named!` can now declare public functions like this: `named!(pub tst, tag!("abcd"));`
1385 - `pair!(X,Y)` returns a tuple `(x, y)`
1386 - `separated_pair!(X, sep, Y)` returns a tuple `(x, y)`
1387 - `preceded!(opening, X)` returns `x`
1388 - `terminated!(X, closing)` returns `x`
1389 - `delimited(opening, X, closing)` returns `x`
1390 - `separated_list(sep, X)` returns a `Vec<X>`
1391 - `separated_nonempty_list(sep, X)` returns a `Vec<X>` of at list one element
1394 - `many0!` and `many1!` forbid parsers that do not consume input
1395 - `is_a!`, `is_not!`, `alpha`, `digit`, `space`, `multispace` will now return an error if they do n…
1397 ## 0.2.1 - 2015-04-04
1400 - @mtsr for catching the remaining debug println!
1401 - @jag426 who killed a lot of warnings
1402 - @skade for removing the dependency on the core feature gate
1406 - little endian unsigned int parsers le_u8, le_u16, le_u32, le_u64
1407 - `count!` to apply a parser a specified number of times
1408 - `cond!` applies a parser if the condition is met
1409 - more parser development tools in `util::*`
1412 - in one case, `opt!` would not compile
1415 - most of the feature gates are now removed. The only one still needed is `collections`
1417 ## 0.2.0 - 2015-03-24
1418 *works with `rustc 1.0.0-dev (81e2396c7 2015-03-19) (built 2015-03-19)`*
1421 - Ryman for the AsBytes implementation
1422 - jag426 and jaredly for documentation fixes
1423 - eternaleye on #rust IRC for his help on the new macro syntax
1426 - the AsBytes trait improves readability, no more b"...", but "..." instead
1427 - Incomplete will now hold either Needed;;Unknown, or Needed::Size(u32). Matching on Incomplete wit…
1428 - `alt!` can pass the result of the parser to a closure
1429 - the `take_*` macros changed behaviour, the default case is now not to consume the separator. The …
1432 - `peek!` macro: matches the future input but does not consume it
1433 - `length_value!` macro: the first argument is a parser returning a `n` that can cast to usize, the…
1434 - benchmarks are available at https://github.com/Geal/nom_benchmarks
1435 - more documentation
1436 - **Unnamed parser syntax**: warning, this is a breaking change. With this new syntax, the macro co…
1437 - `named!`, `closure!` and `call!` macros used to support the unnamed syntax
1438 - `map!`, `map_opt!` and `map_res!` to combine a parser with a normal function, transforming the in…
1441 - `is_a!` is now working properly
1444 - the `o!` macro does less than `chain!`, so it has been removed
1445 - the `fold0!` and `fold1!` macros were too complex and awkward to use, the `many*` combinators wil…
1447 ## 0.1.6 - 2015-02-24
1449 - consumers must have an end method that will be called after parsing
1452 - big endian unsigned int and float parsers: be_u8, be_u16, be_u32, be_u64, be_f32, be_f64
1453 - producers can seek
1454 - function and macros documentation
1455 - README documentation
1457 - lifetime declarations
1458 - tag! can return Incomplete
1460 ## 0.1.5 - 2015-02-17
1462 - traits were renamed: FlatMapper -> FlatMap, Mapper -> FlatMapOpt, Mapper2 -> Functor
1465 - woeks with rustc f1bb6c2f4
1467 ## 0.1.4 - 2015-02-17
1469 - the chaining macro can take optional arguments with '?'
1471 ## 0.1.3 - 2015-02-16
1473 - the chaining macro now takes the closure at the end of the argument list
1475 ## 0.1.2 - 2015-02-16
1477 - flat_map implementation for <&[u8], &[u8]>
1478 - chaining macro
1479 - partial MP4 parser example
1482 ## 0.1.1 - 2015-02-06
1484 - closure syntax change