Update Rust crate strum to 0.27 (release/0.0.2) #76
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.24->0.27Release Notes
Peternator7/strum (strum)
v0.27.2Compare Source
#141: Adding support for doc comments on
EnumDiscriminantsgenerated type.#435:allow discriminants on empty enum.
#443: Change enum table callbacks to FnMut.
#444: Add
#[automatically_derived]to theimpls by @dandedotdev in #444#440: Implement a
suffixattribute for serialization of enum variants.#446: Drop needless
rustversiondependency.v0.27.1Compare Source
#414: Fix docrs build error.
#417: Mention
parse_error_tyandparse_error_fnthat had beenleft out of the docs accidentally.
#421#331: Implement
#[strum(transparent)]attribute onIntoStaticStr,DisplayandAsRefStrthat forwards the implmenentation tothe inner value. Note that for static strings, the inner value must be convertible to an
&'static str.v0.27.0Compare Source
Highlights
Displayis now correctly derived in[no_std]projects.EnumIternow implementsSend + SyncEnumTryAsnow handles attributes on variant fields correctly.strumis now on rust 2021EnumPropertiescorrectly implementsget_boolandget_intfinally. 🎉
FromStringnow supports 2 additional attributes,parse_error_tyand
parse_error_fnthat can be added to use a custom error type rather than the default strum error message.Pathrather than aStringto improve behavior with rust-analyzer.
Breaking Changes
EnumPropertiesdoesn't provide default implementations anymore.This would have required you to manually implement this trait which should be very uncommon.
v0.26.3Compare Source
EnumTablebecause it's going to be deprecated in the nextversion.
itertoolsby using the fullyqualified name rather than the inherent method.
string interpolation.
#[strum(to_string = "Field 0: {0}, Field 1: {1})")]will now work for tuple variantsv0.26.2Compare Source
EnumTryAsAsRefStr. Technically a breaking change,but
prefixwas just added in0.26.0so it's a newer feature and it makes the feature more consisent in general.v0.26.1coreinstead ofstdin VariantArray.v0.26.0Breaking Changes
EnumVariantNamesmacro has been renamedVariantNames. The deprecation warning should steer you inthe right direction for fixing the warning.
added the implementation in your code.
Displaynow supports format strings using named fields in the enum variant. This should be a no-op for most code.However, if you were outputting a string like
"Hello {field}", this will now be interpretted as a format string.closer to a mirror of the original and that's always the goal.
New features
The
VariantArraymacro has been added. This macro adds an associated constantVARIANTSto your enum. The constantis a
&'static [Self]slice so that you can access all the variants of your enum. This only works on enums that onlyhave unit variants.
The
EnumTablemacro has been experimentally added. This macro adds a new type that stores an item for each variantof the enum. This is useful for storing a value for each variant of an enum. This is an experimental feature because
I'm not convinced the current api surface area is correct.
Displayhas 2 new features:the
strum(prefix = "some_value")attribute on an enum now allows you to prepend a string onto everyvariant when you serialize it.
Custom
to_stringandserializeattributes now support string interopolation on serialization.PR's Merged
std::fmt::DebugVariantArrayEnumTablemacro to generate a mapping between fieldless variants and data.v0.25.0Breaking Changes
#261 Upgrade syn dependency to version 2. This bumps the msrv to
1.56. It's impractical to maintain a package where a core dependency of the ecosystem has a different msrv than this one.
270 Change the
to_stringbehavior when usingdefault. Now, whenusing
default, thedisplaymethod will return the display version of the value contained in the enum rather thanthe name of the variant.
If you want the old behavior, you can use the
to_stringattribute to override this behavior. See the PR for an example.268 Update the behavior of
EnumCountto exclude variants that aredisabled. This is a breaking change, but the behavior makes it more consistent with other methods.New Features
#257 This PR adds the
EnumIsmacro that automatically implementsis_{variant_name}methods for each variant.Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.