Skip to content

fix(deps): update rust crate strum to 0.28.0#34

Open
renovate[bot] wants to merge 1 commit intomasterfrom
renovate/strum-monorepo
Open

fix(deps): update rust crate strum to 0.28.0#34
renovate[bot] wants to merge 1 commit intomasterfrom
renovate/strum-monorepo

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate Bot commented Jun 24, 2024

This PR contains the following updates:

Package Type Update Change
strum dependencies minor 0.26.00.28.0

Release Notes

Peternator7/strum (strum)

v0.28.0

Compare Source

  • #​461: Allow any kind of passthrough attributes on EnumDiscriminants.

    • Previously only list-style attributes (e.g. #[strum_discriminants(derive(...))]) were supported. Now path-only
      (e.g. #[strum_discriminants(non_exhaustive)]) and name/value (e.g. #[strum_discriminants(doc = "foo")])
      attributes are also supported.
  • #​462: Add missing #[automatically_derived] to generated impls not
    covered by #​444.

  • #​466: Bump MSRV to 1.71, required to keep up with updated syn and
    windows-sys dependencies. This is a breaking change if you're on an old version of rust.

  • #​469: Use absolute paths in generated proc macro code to avoid
    potential name conflicts.

  • #​465: Upgrade phf dependency to v0.13.

  • #​473: Fix cargo fmt / clippy issues and add GitHub Actions CI.

  • #​477: strum::ParseError now implements core::fmt::Display instead
    std::fmt::Display to make it #[no_std] compatible. Note the Error trait wasn't available in core until 1.81
    so strum::ParseError still only implements that in std.

  • #​476: Breaking Change - EnumString now implements From<&str>
    (infallible) instead of TryFrom<&str> when the enum has a #[strum(default)] variant. This more accurately
    reflects that parsing cannot fail in that case. If you need the old TryFrom behavior, you can opt back in using
    parse_error_ty and parse_error_fn:

    #[derive(EnumString)]
    #[strum(parse_error_ty = strum::ParseError, parse_error_fn = make_error)]
    pub enum Color {
        Red,
        #[strum(default)]
        Other(String),
    }
    
    fn make_error(x: &str) -> strum::ParseError {
        strum::ParseError::VariantNotFound
    }
  • #​431: Fix bug where EnumString ignored the parse_err_ty
    attribute when the enum had a #[strum(default)] variant.

  • #​474: EnumDiscriminants will now copy default over from the
    original enum to the Discriminant enum.

    #[derive(Debug, Default, EnumDiscriminants)]
    #[strum_discriminants(derive(Default))] // <- Remove this in 0.28.
    enum MyEnum {
        #[default] // <- Will be the #[default] on the MyEnumDiscriminant
        #[strum_discriminants(default)] // <- Remove this in 0.28
        Variant0,
        Variant1 { a: NonDefault },
    }

v0.27.2

Compare Source

  • #​141: Adding support for doc comments on EnumDiscriminants generated type.

    • The doc comment will be copied from the variant on the type itself.
  • #​435:allow discriminants on empty enum.

  • #​443: Change enum table callbacks to FnMut.

  • #​444: Add #[automatically_derived] to the impls by @​dandedotdev in #​444

    • This should make the linter less noisy with warnings in generated code.
  • #​440: Implement a suffix attribute for serialization of enum variants.

    #[derive(strum::Display)]
    #[strum(suffix=".json")]
    #[strum(serialize_all="snake_case")]
    enum StorageConfiguration {
      PostgresProvider,
      S3StorageProvider,
      AzureStorageProvider,
    }
    
    fn main() {
      let response = SurveyResponse::Other("It was good".into());
      println!("Loading configuration from: {}", StorageConfiguration::PostgresProvider);
      // prints: Loaded Configuration from: postgres_provider.json
    }
  • #​446: Drop needless rustversion dependency.

v0.27.1

Compare Source

  • #​414: Fix docrs build error.

  • #​417: Mention parse_error_ty and parse_error_fn that had been
    left out of the docs accidentally.

  • #​421#​331: Implement
    #[strum(transparent)] attribute on IntoStaticStr, Display and AsRefStr that forwards the implmenentation to
    the inner value. Note that for static strings, the inner value must be convertible to an &'static str.

    #[derive(strum::Display)]
    enum SurveyResponse {
      Yes,
      No,
      #[strum(transparent)]
      Other(String)
    }
    
    fn main() {
      let response = SurveyResponse::Other("It was good".into());
      println!("Question: Did you have fun?");
      println!("Answer: {}", response);
      // prints: Answer: It was good
    }

v0.27.0

Compare Source

Highlights
  • #​407: Display is now correctly derived in [no_std] projects.
  • #​402: EnumIter now implements Send + Sync
  • #​400: EnumTryAs now handles attributes on variant fields correctly.
  • #​398: strum is now on rust 2021
  • #​391: EnumProperties correctly implements get_bool and get_int
    finally. 🎉
  • #​380: FromString now supports 2 additional attributes, parse_error_ty
    and parse_error_fn that can be added to use a custom error type rather than the default strum error message.
    • #​410: These attributes accept a Path rather than a String
      to improve behavior with rust-analyzer.
Breaking Changes
  • #​384: MSRV is now 1.66.1
  • #​391: EnumProperties doesn't provide default implementations anymore.
    This would have required you to manually implement this trait which should be very uncommon.

v0.26.3

Compare Source

  • #​344: Hide EnumTable because it's going to be deprecated in the next
    version.
  • #​357: Fixes an incompatiblity with itertools by using the fully
    qualified name rather than the inherent method.
  • #​345: Allows unnamed tuple like variants to use their variants in
    string interpolation. #[strum(to_string = "Field 0: {0}, Field 1: {1})")] will now work for tuple variants

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 becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot changed the title fix(deps): update rust crate strum to v0.26.3 fix(deps): update rust crate strum to 0.27.0 Feb 9, 2025
@renovate renovate Bot force-pushed the renovate/strum-monorepo branch from 97e29ba to d0ff0cb Compare February 9, 2025 08:33
@renovate renovate Bot force-pushed the renovate/strum-monorepo branch from d0ff0cb to d9349e0 Compare August 10, 2025 14:25
@renovate renovate Bot force-pushed the renovate/strum-monorepo branch from d9349e0 to 472e4b9 Compare September 25, 2025 15:48
@renovate renovate Bot force-pushed the renovate/strum-monorepo branch from 472e4b9 to 4897100 Compare December 10, 2025 15:45
@renovate renovate Bot changed the title fix(deps): update rust crate strum to 0.27.0 fix(deps): update rust crate strum to 0.28.0 Feb 22, 2026
@renovate renovate Bot force-pushed the renovate/strum-monorepo branch from 4897100 to eb7a160 Compare February 22, 2026 16:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants