darling breaking changes

cargo

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

35
changes
Breaking changes by transition
  • 0.5.0 \u2192 0.6.0breaking

    Added dedicated `derive(FromMetaItem)` which panics and redirects users to `FromMeta`

  • 0.5.0 \u2192 0.6.0renamed

    Renamed `FromMetaItem` to `FromMeta`, and renamed `from_meta_item` method to `from_meta`

  • 0.2.2 \u2192 0.3.0breaking

    Update `syn` to 0.12 [#20](https://github.com/TedDriggs/darling/pull/20). Thanks to @Eijebong

  • 0.2.2 \u2192 0.3.0breaking

    Update `quote` to 0.4 [#20](https://github.com/TedDriggs/darling/pull/20). Thanks to @Eijebong

  • 0.2.2 \u2192 0.3.0renamed

    Rename magic field `body` in derived `FromDeriveInput` structs to `data` to stay in sync with `syn`

  • 0.2.2 \u2192 0.3.0renamed

    Rename magic field `data` in derived `FromVariant` structs to `fields` to stay in sync with `syn`

  • 0.21.3 \u2192 0.22.0behavior

    Add `#[darling(default = || expr(val))]` support, allowing a closure where a path was previously required [#380](https://github.com/TedDriggs/darling/pull/380)

  • 0.21.3 \u2192 0.22.0breaking

    Preserve span information for paths given to `darling::util::Callable` as literal strings

  • 0.21.3 \u2192 0.22.0breaking

    Fix some documentation typos

  • 0.21.3 \u2192 0.22.0removed

    **BREAKING:** Remove `fnv` dependency, as runtime performance gain does not justify additional dependency. This was exposed to users of `darling::usage`, so it may be breaking for them [#373](https://github.com/TedDriggs/darling/pull/373)

  • 0.20.11 \u2192 0.21.0breaking

    Impl `UsesTypeParams` and `UsesLifetimes` for `WithOriginal` [#215](https://github.com/TedDriggs/darling/issues/215)

  • 0.20.11 \u2192 0.21.0breaking

    Update error message emitted by `<() as FromMeta>::from_list` to allow use of `()` as a `#[darling(flatten)]` target [#353](https://github.com/TedDriggs/darling/issues/353)

  • 0.20.11 \u2192 0.21.0breaking

    Add `util::PreservedStrExpr` [#346](https://github.com/TedDriggs/darling/pull/346)

  • 0.20.11 \u2192 0.21.0breaking

    Make `impl FromMeta for syn::TypePath` support both quote-wrapped and bare values [#351](https://github.com/TedDriggs/darling/issues/351)

  • 0.20.11 \u2192 0.21.0breaking

    Add `#[darling(derive_syn_parse)]` to also impl `syn::parse::Parse` when deriving `FromMeta` [#285](https://github.com/TedDriggs/darling/issues/285)

  • 0.20.11 \u2192 0.21.0breaking

    Add `SpannedValue::into_inner` [#342](https://github.com/TedDriggs/darling/issues/342)

  • 0.20.11 \u2192 0.21.0breaking

    Support parsing attributes which contain keywords [#238](https://github.com/TedDriggs/darling/issues/238)

  • 0.20.11 \u2192 0.21.0breaking

    Potentially breaking: Emit error when an attribute path is present in both `attributes` and `forward_attrs`. [#336](https://github.com/TedDriggs/darling/issues/336)

  • 0.14.4 \u2192 0.20.0breaking

    The MSRV (minimum supported Rust version) is now 1.56, because of syn.

  • 0.14.4 \u2192 0.20.0breaking

    Replace all occurrences of syn::NestedMeta with darling::ast::NestedMeta.

  • 0.14.4 \u2192 0.20.0breaking

    In GenericParamExt, `LifetimeDef` is now `LifetimeParam`.

  • 0.14.4 \u2192 0.20.0breaking

    Flag and SpannedValue no longer implement `syn::spanned::Spanned`.

  • 0.14.4 \u2192 0.20.0deprecated

    Replacement for the deprecated AttributeArgs:

  • 0.14.4 \u2192 0.20.0renamed

    In GenericParamExt, `as_lifetime_def` is renamed to `as_lifetime_param`.

  • 0.13.4 \u2192 0.14.0breaking

    Bump `syn` dependency to 1.0.91 [#180](https://github.com/TedDriggs/darling/pull/180)

  • 0.13.4 \u2192 0.14.0breaking

    Bump `quote` dependency to 1.0.18 [#180](https://github.com/TedDriggs/darling/pull/180)

  • 0.13.4 \u2192 0.14.0breaking

    Bump `proc-macro2` dependency to 1.0.37 [#180](https://github.com/TedDriggs/darling/pull/180)

  • 0.13.4 \u2192 0.14.0breaking

    Improve validation of enum shapes [#178](https://github.com/TedDriggs/darling/pull/178)

  • 0.13.4 \u2192 0.14.0removed

    **BREAKING CHANGE:** Remove many trait impls from `util::Flag`.

  • 0.13.4 \u2192 0.14.0removed

    Remove need for `#[darling(default)]` on `Option<T>` and `Flag` fields [#161](https://github.com/TedDriggs/darling/issues/161)

  • 0.11.0 \u2192 0.12.0breaking

    Add `impl From<syn::Error> for Error` to losslessly propagate `syn` errors [#116](https://github.com/TedDriggs/darling/pull/116)

  • 0.11.0 \u2192 0.12.0breaking

    Add `darling::util::parse_attribute_to_meta_list` to provide useful errors during attribute parsing [#113](https://github.com/TedDriggs/darling/pull/113)

  • 0.11.0 \u2192 0.12.0breaking

    Impl `syn::spanned::Spanned` for `darling::util::SpannedValue` [#113](https://github.com/TedDriggs/darling/pull/113)

  • 0.11.0 \u2192 0.12.0breaking

    POSSIBLY BREAKING: Derived impls of `FromDeriveInput`, `FromField`, `FromVariant`, and `FromTypeParam` will now error when encountering an attribute `darling` has been asked to parse that isn't a supported shape.

  • 0.10.3 \u2192 0.11.0breaking

    Bump minor version due to unexpected breaking change [#107](https://github.com/TedDriggs/darling/issues/107)

API access

Get this data programmatically \u2014 free, no authentication.

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