From 123547444c6d4f9c516137042185b7c6279f6a4a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 26 Feb 2024 15:37:38 +0800
Subject: [PATCH] Bump strum_macros from 0.25.3 to 0.26.1 (#11979)
Bumps [strum_macros](https://github.com/Peternator7/strum) from 0.25.3
to 0.26.1.
Sourced from strum_macros's
releases. The #[derive(Debug, VariantArray)]
enum Color {
Red,
Blue,
Green,
} fn main() {
println!("{:?}", Color::VARIANTS); // prints:
["Red", "Blue", "Green"]
}
Release notes
v0.26.1
0.26.1
core
instead of std
in VariantArray.0.26.0
Breaking Changes
EnumVariantNames
macro has been renamed
VariantNames
. The deprecation warning should steer you in
the right direction for fixing the warning.Display
now 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.New features
VariantArray
macro has been added. This macro adds
an associated constant VARIANTS
to your enum. The constant
is a &'static [Self]
slice so that you can access all
the variants of your enum. This only works on enums that only
have unit variants.use strum::VariantArray;
The EnumTable
macro has been experimentally
added. This macro adds a new type that stores an item for each variant
of 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.
use strum::EnumTable;
#[derive(Copy, Clone, Debug, EnumTable)]
enum Color {
Red,
Blue,
... (truncated)
Sourced from strum_macros's changelog.
0.26.1
- #325: use
core
instead ofstd
in VariantArray.0.26.0
Breaking Changes
- The
EnumVariantNames
macro has been renamedVariantNames
. The deprecation warning should steer you in the right direction for fixing the warning.- The Iterator struct generated by EnumIter now has new bounds on it. This shouldn't break code unless you manually added the implementation in your code.
Display
now 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.- EnumDiscriminant now inherits the repr and discriminant values from your main enum. This makes the discriminant type closer to a mirror of the original and that's always the goal.
New features
The
VariantArray
macro has been added. This macro adds an associated constantVARIANTS
to your enum. The constant is a&'static [Self]
slice so that you can access all the variants of your enum. This only works on enums that only have unit variants.use strum::VariantArray;
#[derive(Debug, VariantArray)] enum Color { Red, Blue, Green, }
fn main() { println!("{:?}", Color::VARIANTS); // prints: ["Red", "Blue", "Green"] }
The
EnumTable
macro has been experimentally added. This macro adds a new type that stores an item for each variant of 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.use strum::EnumTable;
#[derive(Copy, Clone, Debug, EnumTable)] enum Color { Red, Blue, Green,
... (truncated)