- perf: avoid initializing huge buffers in the stream decoder
-
memchr: use non deprecated feature
std
instead ofuse_std
-
refactor: Extract less-generic code from sequence's add_errors (-5%)
- warning (08753d3e)
- Avoid a saturating add in slice_uncons_while (7f330b0c)
- Avoid a saturating add in slice_uncons_while (ad4180dd)
- Add decode_tokio (aa20bf64)
- Correct the tokio-02 feature (466a50d3)
- Remove pin-project-lite from the 'std' feature (32ef87b0)
- Add async decoding for tokio version 1 (8e91f57d)
- Add support for decoding using tokio_03 (ce1612ff)
- Add a length_prefix combinator (9e343b2a, closes #297)
- Add a spanned combinator (1a70f3f4)
- Add a spanned combinator (9a8fead8)
- Allow conversion between errors with different token,range,position types (65fe0af2, breaks #)
- Make the decode macros work for redis (82b908d8)
- Specialize decoding on BufReader (9559e114)
- Add a BufReader abstraction for Decoder (d65a23e8)
- Allow tuple structs and functions in struct_parser! (48a16f6b)
- Add any_send_sync_partial_state (7e90807a)
- Don't block decoding if there are more data in the buffer (6659f993)
- Don't try to read into the entire buffer for std decoding (d613dc93)
- Relax the decode*! macros to no longer need BufRead (bc5b7794)
- Add decode_futures_03_buf_read (f403ecda)
- Add the produce parser (ac15b87c)
- Increase tuple parsers to 20 elements (45781fea)
- Remove deprecated re-exports (b4e23207, breaks #)
- Add decode_tokio_buf_read! to parse tokio::io::BufRead (4d38f7c2)
- Add
decode_buf_read!
to parseBufRead
without (dbe23ce9) - Add a macro to incrementally decode std::io::BufRead (6e2f1121)
- Rename Consumed to Commit and Empty to Peek (129046e3, breaks #)
- Rename Consumed{Ok,Err} to Commit{Ok,Err} and Empty{Ok,Err} to Peek{Ok,Err} (0ac1fd4f)
- Add a dedicated error for ReadStream (37bbd843)
- Handle partial parsing in sep_end_by (281e0d30)
- Remove deprecated re-exports (b4e23207, breaks #)
- Rename Consumed to Commit and Empty to Peek (129046e3, breaks #)
- Handle partial parsing in the num parsers (47764c7f)
- Don't bind the input lifetime to the parser with expected/message (618c69e0)
- Merge FullRangeStream into RangeStreamOnce (c160a971, breaks #)
- Rename
StreamOnce::Item
toToken
(74a0bbd3, breaks #, #) - Minimum rust version is now 1.32 (7b77508c, breaks #)
- Only require
&mut I
in decode (e154dbc2, breaks #) - Generalize factory to take the Input (19b1a73e, breaks #)
- Merge FullRangeStream into RangeStreamOnce (c160a971, breaks #)
- Rename
StreamOnce::Item
toToken
(74a0bbd3, breaks #, #) - Allow fmt::Display be used to specify errors in combinators (82796d4a, closes #255)
- Minimum rust version is now 1.32 (7b77508c, breaks #)
- Only require
&mut I
in decode (e154dbc2, breaks #) - Add RepeatUntil (7f4a310f)
- Generalize factory to take the Input (19b1a73e, breaks #)
- Add the iterate parser (342a45b4)
- Add dispatch! (0740ce0f)
- impl Stream* for &mut T (51e7e2b7)
- Add
From<S>
foreasy::Stream<S>
(8f695cc6) - Allow ReadStream parsers to use &[u8] in errors (6b62a857, closes #249)
- impl Stream* for &mut T (51e7e2b7)
- Add
From<S>
foreasy::Stream<S>
(8f695cc6) - Allow ReadStream parsers to use
&[u8]
in errors (6b62a857, closes #249)
- Drop support for regex 0.2 (bf6aeb06, closes #247, breaks #)
- Rename tokens2 to tokens and tokens to tokens_cmp (3dadbb4f, closes #166, breaks #)
- Remove the std::result::Result returning parse functions (6ec094ef, closes #244, breaks #)
- Make PointerOffset easier to understand and use (5f6d65b3, closes #238, breaks #)
- Allow reset to return errors (3055c810, closes #231, breaks #)
- Remove the PartialEq bound from Item and Range (24e1087c, closes #219, breaks #)
- Drop support for regex 0.2 (bf6aeb06, closes #247, breaks #)
- Rename tokens2 to tokens and tokens to tokens_cmp (3dadbb4f, closes #166, breaks #)
- Remove the std::result::Result returning parse functions (6ec094ef, closes #244, breaks #)
- Allow reset to return errors (3055c810, closes #231, breaks #)
- Remove the PartialEq bound from Item and Range (24e1087c, closes #219, breaks #)
- Don't require macro_use when using parser! in rust 2018 (72e4c70f, closes #241)
- Make PointerOffset easier to understand and use (5f6d65b3, closes #238, breaks #)
- Handle partial parsing in
take_fn/take_until*
(bae1e3bb)
- Add take_fn and take_until_bytes (5f560780)
- Forward is_partial in all Stream adaptors (121b3987)
- Fix two inconsisties regarding EOI #227
- not_followed_by should fail on empty successful parses (aa17e7d2)
- Propagate the PartialState through parser! uses (ae888244, closes #223)
- Allow clippy to run on stable rust (6cb00803)
- Deprecates
try
in favor ofattempt
(a9c79321) - Adds
attempt
, a 2018-compatible alias fortry
(18edaec4)
- use unexpected_any inside
then
examples (f2018db5)
- Don't report previous errors from expected (0048c5ef)
- Add all errors of nested choice parsers (f2b8fbbf)
- Add the silent combinator (b9bc28d3)
- Add the
opaque
parser (1a1123f5) - Add tokens2 as a simpler version of tokens (072a8c13)
- Add the from_str combinator (908f9ebd)
- Make (many1(p), end) report more expected messages (9e26d38e)
- Report more errors in the middle of sequence parsers (f9e404f6)
- Report more expected information from nested sequence parsers (9aa1db92)
- Use the message variant in from_str to work on no_std (edf5ff60)
- Remove redundant Any bound on easy::Errors (16601046, closes #177)
- Don't forget the state in any_send_partial_state (4e2eb928)
- Propagate the ParseMode in range::recognize (c330a737)
- fix: Forward the partial mode through the parser! macro correctly
- Parse from the start in sequence parsers in first mode
- support resuming streams in TakeUntilRange (b54ff061)
- reset stream on error in take_until_range (27449f21)
- support multi-byte
Item
s in take_until_range (4a690d65)
- Specialize uncons_while1 on all streams (c995ad61)
- Unroll the loop for <[T]>::uncons_while (f593e85d)
- Inline from/into for results (fff248e4)
- Unroll take_while1 (279a4526)
- Remove redundant state comparison in Iter (9d434c3f, breaks #)
- Add uncons_while1 as a default method on RangeStream (5d154f15)
- Add any_send_partial_state (d4153d31)
- Allow the the
num
parsers to be used without RangeStream (b1cb0668) - Add the take_until parser (7b03b596)
- Allow try parsers to be used with partial parsing (cb2da7ad)
3.0.0 is the final stabilization of all the changes made in the 3.x-alpha/beta releases. You can read more about these changes at https://marwes.github.io/2018/02/08/combine-3.html and https://www.reddit.com/r/rust/comments/6s792a/combine_250_and_300alpha1/
- Let single element tuples work as sequence and choice parsers (81e34d2d)
- Encode parsers as resumable state machines 342fc47
- Add the unexpected_any parser (979e0d7e, closes #126)
- Don't have the error type be generic for uncons* (df3e84f0)
- Add a alias which helps to refer to the StreamError type (95eb70cb)
- Add memchr optimized take_until_byte parsers (30cc7d1d)
- Add the
then_partial
parser (5d402f6b) - Don't require
Clone
forStream
(3fc0b540, breaks #)
- Allow
parser!
to be used within functions (916bb824) - Allow multiple unnamed public parsers to be in the same scope (c04e2247)
- Return the correct distance for slices with larger than 1 byte items (6b3c661a)
- Don't add extra expected errors when erroring in the middle of a sequence (44eac24d)
- Avoid cloning input in satisfy (9aeaefa9)
- Rename EasyStream -> Stream, ParsingError => ParseError ... (d2f4ab14, breaks #)
- Make the RangeStreamOnce function generic over the returned error (818d8629, breaks #)
- Re-export the type generated by parser! if it is public (61469f0a, breaks #)
- Add inline annotations on error traits (c8b495b4)
- Rename EasyStream -> Stream, ParsingError => ParseError ... (d2f4ab14, breaks #)
- Make the RangeStreamOnce function generic over the returned error (818d8629, breaks #)
- Allow combine to be used in no_std environments (9fd310ac)
- Re-export the type generated by parser! if it is public (61469f0a, breaks #)
- Implement Copy for more types (e60395d6)
- Remove the old State type and Positioner trait (ae43f8ae, breaks #)
- Teach the choice parser to take tuples (96da7ee0, breaks #)
- Add the range_of parser (7e692086, closes #83, breaks #)
- Add map_token and map_range methods to ParseError (2f92b296, closes #86)
- Allow ParseError to be used without the StreamOnce constraint (520da8e8, breaks #)
- Remove depreceated items (9107342a, breaks #)
- Don't forward tuple parsers to frunk to prevent a performance loss (7e27c523)
- Add the correct errors after sequencing has returned EmptyOk (54fecc62, closes #95)
- Renamed SharedBufferedStream and BufferedStream to be less confusing (3add407e, breaks #)
- Add From for Info (4cf8cff6)
- Make the positions of slice streams harder to misuse (f50ab9e2, closes #104, breaks #)
- Remove depreceated items (9107342a, breaks #)
- Renamed SharedBufferedStream and BufferedStream to be less confusing (3add407e, breaks #)
- Remove the old State type and Positioner trait (ae43f8ae, breaks #)
- Teach the choice parser to take tuples (96da7ee0, breaks #)
- Add the range_of parser (7e692086, closes #83, breaks #)
- Make the positions of slice streams harder to misuse (f50ab9e2, closes #104, breaks #)
- Allow ParseError to be used without the StreamOnce constraint (520da8e8, breaks #)
- Rename captures to captures_many and add a captures parser (9d301e42)
- Add regex parsers (match_, find_many) (5ac12b98)
- Add a macro to parse values directly into structs (1656a620)
- add count_min_max and skip_count_min_max (8f3413a7)
- Add the skip_count parser (15171d10)
- Add the recognize parser (61c9b269)
- Add a macro for declaring parsers (7fe1d9f7, closes #70)
- Provide parsers for decoding big-endian and little-endian numbers (05ec0bc8)
- Report and_then errors as if at the start of the parse (b71a78f1)
- Return EmptyErr when the any parser fails (93208e9c, closes #99)
- doc: regex find consumes input until the end of the first match (d1bbf1d4)
- Don't call parse_stream in optional (a4bf28d2)
- Add the choice! macro (6f2cec69)
- Add map functions for Error<> and Info<> ranges. (#86)
- Add Parser::boxed (3af9c9b3)
- Add a read adapter for the stream trait (a2a9f214)
- Version 2.0.0 (80b24186)
- Add the count parser (a7949f3a)
- Add the Parser::by_ref method (15554d0c)
- Add the one_of and none_of parsers (941b277c)
- Add the position parser (d6c65f6d)
- Add bytes_cmp and string_cmp (ee6b430d)
- Add the
tokens
parser (886c4523) - Version 2.0.0-beta3 (55c59322)
- Break out the error formatting into a separate function (b6ccb0c1)
- Rename parse_state to parse_stream (b375df48)
- Simplify the flat_map parser (08a91ce2)
- Merge the ParserExt trait into Parser (26a84154)
- Add the bytes parser (9c73c053)
- Add parsers specialized on byte streams (01ba3759)
- Make ctry usable outside the crate (f45740dd)
- Add versions of parse_* which return an unpacked version of ParseResult (2bbd14ab)
- Add the satisy_map parser (4d97d296)
- Replace the And parser with the pair parser (b1f56113)
- Remove reexport of the char module from the root module (e39dacb5)
- Version 2.0.0-beta (5bdbf584)
- Remove the buffered_stream feature (3fdbf217)
- Version 1.3.0 (acea26cd)
- Add the eof parser (6a89cbf2)
- Stabilize RangeStream and all functions using it (d932375d)
- Reexport Stream and StreamOnce from the crate root (2c2b3f5c)
- Merge the HasPosition trait into StreamOnce (3bda4a16)
- Add the StreamOnce trait (9ea0ed5d, breaks #)
- Make Stream::uncons take &mut self (4ddc4257)
- Separate the Position type and position method from Stream (9cfb9a89)
- Version 1.2.1 (f737af27)
- Move the position handling inside the Stream trait (f41f65e9)
- range_stream: Implement RangeStream on State (f5679dc9)
- Specialize and_then, then and flat_map (9dc7dc6b)
- Specialize the tuple parser to avoid unnecessary branches (2b294f80)
- Add inline annotations and more forwarding parse functions (0e5ee38e)
- Avoid indirection in Skip and With (52d335ca)
- Optimize Iter by simplifying the state machine (9631700a)
- Speedup tuple parsers by simplifying the expanded code (5d86dcf2)
- Avoid creating an error when take_while1 parses no input (9bad15c0)
- Possibly improve performance of the RangeStream impl for &str (abb1de7f)
- Rename the String parser to Str (d846bf0e)
- Use five copies in the large http test anyway to match nom_benchmarks (eb089f5b)
- Avoid storing the position in primitives::uncons_while (9912507a)
- Calling uncons_range with the same size as is remaining should succeed (cce6214e)
- Add Sync to to the Error::Other variant (22add3ec)
- Fix positions of BufferedStream being for the next token (66eab92a)
- Fix the position handling of BufferedStream (f21148b3)
- Remove the Positioner bound from Stream::Token an Stream::Range (fba3f1e7)
- buffered_stream: BufferedStream no longer emits the last token after EOF (6532884c)
- travis: