winnow breaking changes

cargo

67 curated breaking changes across major versions of winnow. Use this as a migration checklist before bumping dependencies.

67
changes
Breaking changes by transition
  • 0.7.15 \u2192 1.0.0api

    Moved `BitOffsets` from `stream` to `binary::bits` to consolidate the API

    Migration

    1. 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

    Migration

    1. 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`

    Migration

    1. 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`

    Migration

    1. 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`

    Migration

    1. 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`

    Migration

    1. 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

    Migration

    1. 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

    Migration

    1. 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

    Migration

    1. 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

    Migration

    1. 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

    Migration

    1. 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

    Migration

    1. 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`

    Migration

    1. 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

    Migration

    1. 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

    Migration

    1. 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`

    Migration

    1. 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

    Migration

    1. 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)

API access

Get this data programmatically \u2014 free, no authentication.

curl https://depscope.dev/api/breaking/cargo/winnow
winnow breaking changes — Cargo migration guide | DepScope