winnow breaking changes
cargo67 curated breaking changes across major versions of winnow. Use this as a migration checklist before bumping dependencies.
- 0.7.15 \u2192 1.0.0api
Moved `BitOffsets` from `stream` to `binary::bits` to consolidate the API
Migration1. Update to latest v0.7 release 2. Resolve deprecations 3. Upgrade to v1 4. Add `ascii`, `binary`, or `parser` features as needed 5. Break tuples into tuples-of-tuples as needed
- 0.7.15 \u2192 1.0.0breaking
Accept a parser for `escaped`, `take_escaped` control character for not-quite unicode parsing
Migration1. Update to latest v0.7 release 2. Resolve deprecations 3. Upgrade to v1 4. Add `ascii`, `binary`, or `parser` features as needed 5. Break tuples into tuples-of-tuples as needed
- 0.7.15 \u2192 1.0.0breaking
Add `Parser::parse_iter`
Migration1. Update to latest v0.7 release 2. Resolve deprecations 3. Upgrade to v1 4. Add `ascii`, `binary`, or `parser` features as needed 5. Break tuples into tuples-of-tuples as needed
- 0.7.15 \u2192 1.0.0breaking
Export `Needed` in `stream`
Migration1. Update to latest v0.7 release 2. Resolve deprecations 3. Upgrade to v1 4. Add `ascii`, `binary`, or `parser` features as needed 5. Break tuples into tuples-of-tuples as needed
- 0.7.15 \u2192 1.0.0breaking
Correct trace for `oct_digit1`
Migration1. Update to latest v0.7 release 2. Resolve deprecations 3. Upgrade to v1 4. Add `ascii`, `binary`, or `parser` features as needed 5. Break tuples into tuples-of-tuples as needed
- 0.7.15 \u2192 1.0.0breaking
Allow `escaped` into a `Cow`
Migration1. Update to latest v0.7 release 2. Resolve deprecations 3. Upgrade to v1 4. Add `ascii`, `binary`, or `parser` features as needed 5. Break tuples into tuples-of-tuples as needed
- 0.7.15 \u2192 1.0.0breaking
Added `parser`, `ascii`, and `binary` feature gates to improve build times
Migration1. Update to latest v0.7 release 2. Resolve deprecations 3. Upgrade to v1 4. Add `ascii`, `binary`, or `parser` features as needed 5. Break tuples into tuples-of-tuples as needed
- 0.7.15 \u2192 1.0.0breaking
Reduce 'impl ContainsToken for Tuple' to 10 elements to improve build times
Migration1. Update to latest v0.7 release 2. Resolve deprecations 3. Upgrade to v1 4. Add `ascii`, `binary`, or `parser` features as needed 5. Break tuples into tuples-of-tuples as needed
- 0.7.15 \u2192 1.0.0breaking
Reduce 'impl Alt for Tuple' to 10 elements to improve build times
Migration1. Update to latest v0.7 release 2. Resolve deprecations 3. Upgrade to v1 4. Add `ascii`, `binary`, or `parser` features as needed 5. Break tuples into tuples-of-tuples as needed
- 0.7.15 \u2192 1.0.0breaking
Reduce 'impl Parser for Tuple' to 10 elements to improve build times
Migration1. Update to latest v0.7 release 2. Resolve deprecations 3. Upgrade to v1 4. Add `ascii`, `binary`, or `parser` features as needed 5. Break tuples into tuples-of-tuples as needed
- 0.7.15 \u2192 1.0.0breaking
Replaced `(I, usize)` with `binary::bits::Bits` to clarify intent
Migration1. Update to latest v0.7 release 2. Resolve deprecations 3. Upgrade to v1 4. Add `ascii`, `binary`, or `parser` features as needed 5. Break tuples into tuples-of-tuples as needed
- 0.7.15 \u2192 1.0.0breaking
Make `iterator` impure like parsers
Migration1. Update to latest v0.7 release 2. Resolve deprecations 3. Upgrade to v1 4. Add `ascii`, `binary`, or `parser` features as needed 5. Break tuples into tuples-of-tuples as needed
- 0.7.15 \u2192 1.0.0breaking
Replace `Stream::raw` with `Stream::trace`
Migration1. Update to latest v0.7 release 2. Resolve deprecations 3. Upgrade to v1 4. Add `ascii`, `binary`, or `parser` features as needed 5. Break tuples into tuples-of-tuples as needed
- 0.7.15 \u2192 1.0.0breaking
Reduce macro-generated code
Migration1. Update to latest v0.7 release 2. Resolve deprecations 3. Upgrade to v1 4. Add `ascii`, `binary`, or `parser` features as needed 5. Break tuples into tuples-of-tuples as needed
- 0.7.15 \u2192 1.0.0breaking
Split off `parser`, `ascii`, and `binary` features
Migration1. Update to latest v0.7 release 2. Resolve deprecations 3. Upgrade to v1 4. Add `ascii`, `binary`, or `parser` features as needed 5. Break tuples into tuples-of-tuples as needed
- 0.7.15 \u2192 1.0.0breaking
Optimize `hex_uint`
Migration1. Update to latest v0.7 release 2. Resolve deprecations 3. Upgrade to v1 4. Add `ascii`, `binary`, or `parser` features as needed 5. Break tuples into tuples-of-tuples as needed
- 0.7.15 \u2192 1.0.0removed
Remove deprecated APIs
Migration1. Update to latest v0.7 release 2. Resolve deprecations 3. Upgrade to v1 4. Add `ascii`, `binary`, or `parser` features as needed 5. Break tuples into tuples-of-tuples as needed
- 0.5.40 \u2192 0.6.0api
`AddContext::add_context` now takes a `start: &Checkpoint` parameter for capturing the start of the current parse operation
- 0.5.40 \u2192 0.6.0api
`Checkpoint` gained a generic parameter, limiting it to the stream type it came from
- 0.5.40 \u2192 0.6.0api
`ParserError::append` now takes a `start: &Checkpoint` parameter for capturing the start of the current parse operation
- 0.5.40 \u2192 0.6.0breaking
Asserts in release build now `Cut` rather than `Backtrack`
- 0.5.40 \u2192 0.6.0breaking
Added "min is lower than max" asserts to ranged parsers
- 0.5.40 \u2192 0.6.0breaking
`Stream::reset` now accepts a checkpoint by reference, rather than by value
- 0.5.40 \u2192 0.6.0breaking
`FindSlice::find_slice` now returns a range
- 0.5.40 \u2192 0.6.0breaking
`CompareResult::Ok` now carries a `usize`
- 0.5.40 \u2192 0.6.0breaking
`literal` requires the tag to impl `Debug`
- 0.5.40 \u2192 0.6.0breaking
Added "no progress" asserts to repeating combinators to prevent infinite loops
- 0.5.40 \u2192 0.6.0breaking
`dec_int` / `dec_uint` continue don't stop capturing tokens once the data type is saturated
- 0.5.40 \u2192 0.6.0breaking
Trait bounds changed for `char`, `u8` literal parsers
- 0.5.40 \u2192 0.6.0removed
Deprecated functionality was removed
- 0.3.8 \u2192 0.4.0api
Some trait bounds and generic parameters changed
- 0.3.8 \u2192 0.4.0breaking
Cleaned up the code so it better serves as examples for user-written parsers
- 0.3.8 \u2192 0.4.0breaking
Improved type inference, especially for `""`, `''` parsers
- 0.3.8 \u2192 0.4.0breaking
All `winnow` parsers now return `impl Parser`, rather than `impl FnMut`
- 0.3.8 \u2192 0.4.0breaking
`winnow::prelude::Parser` is now named
- 0.3.8 \u2192 0.4.0breaking
Some infinite loop, overflows, and bounds errors were changed to asserts
- 0.3.8 \u2192 0.4.0breaking
`ErrorKind` was greatly simplified
- 0.3.8 \u2192 0.4.0breaking
`winnow::prelude` now allows named access to `Parser`
- 0.3.8 \u2192 0.4.0breaking
`Parser::parse` added as a replacement for `FinishIResult::finish`
- 0.3.8 \u2192 0.4.0deprecated
Deprecated `FinishIResult`
- 0.3.8 \u2192 0.4.0removed
`escape`: Remove extraneous bounds checks
- 0.3.8 \u2192 0.4.0removed
Deprecated APIs were removed
- unknown \u2192 0.3.0api
`winnow::error::ParserError` function parameter order has changed (#92)
- unknown \u2192 0.3.0behavior
`winnow::multi` parsers will `debug_assert` by default when encountering infinite loops (#146)
- unknown \u2192 0.3.0breaking
Moved error types and traits into the `winnnow::error` module (#73, #117)
- unknown \u2192 0.3.0breaking
`Parser::into` in favor of `Parser::output_into` and `Parser::err_into` (#48)
- unknown \u2192 0.3.0breaking
Combinator structs returned by `Parser` were moved from `winnow` to `winnow::combinator` module (#4)
- unknown \u2192 0.3.0breaking
Merged many input traits into `winnow::stream::Stream` (#105, #107, #142, #155, #157)
- unknown \u2192 0.3.0breaking
`InputIter::iter_indices` is now `Stream::iter_offsets`
- unknown \u2192 0.3.0breaking
`InputIter::position` is now `Stream::offset_for`
- unknown \u2192 0.3.0breaking
`InputIter::slice_index` is now `Stream::offset_at`
- unknown \u2192 0.3.0breaking
Tweaks were made to what input traits are needed for various types / parsers
- unknown \u2192 0.3.0breaking
Changed all parsers to use `FnMut` (#152, #164)
- unknown \u2192 0.3.0breaking
Moved input traits from `winnow` to `winnow::stream` (#13, #142)
- unknown \u2192 0.3.0breaking
`InputIter::Iter` is now `Stream::IterOffsets`
- unknown \u2192 0.3.0breaking
`winnow::error::ErrorKind` for infinite loops, like in `winnow::multi`, was changed to `ErrorKind::Assert` (#146)
- unknown \u2192 0.3.0removed
Removed support for `(I, ErrorKind)` errors in favor of `winnow::error::Error` (#92, #117)
- unknown \u2192 0.3.0removed
Removed `error::error_to_u32` (#54)
- unknown \u2192 0.3.0removed
Removed `pub use bits::*;` into root namespace (#52)
- unknown \u2192 0.3.0renamed
Renamed `winnow::stream::FindTokens` to `ContainsToken` (#105)
- unknown \u2192 0.3.0renamed
`winnow::error::Err` was renamed to `ErrMode` (#117)
- unknown \u2192 0.3.0renamed
`Error` variant was renamed to `Backtrack`
- unknown \u2192 0.3.0renamed
`Fatal` variant was renamed to `Cut`
- unknown \u2192 0.3.0renamed
`winnow::error::Error`'s `code` field was renamed to `kind` (#92)
- unknown \u2192 0.3.0renamed
Renamed `winnow::stream::InputLen` to `SliceLen` (#105)
- unknown \u2192 0.3.0renamed
Renamed `winnow::stream::FindSubstring` to `FindSlice` (#105)
- unknown \u2192 0.3.0renamed
Renamed `winnow::stream::ParseTo` to `ParseSlice` (#136)
Get this data programmatically \u2014 free, no authentication.
curl https://depscope.dev/api/breaking/cargo/winnow