Comments (2)
Wow, I was about to write the same issue. What a coincidence!
You're right, making them true arrays won't work yet, since associated types aren't allowed to depend on associated constants. A workaround would be to make the array length a generic parameter of the trait, but that's pretty unwieldy, in addition to being semantically completely wrong.
I would be in favor of the macros also generating an inherent associated constant which is a true array. That way we can at least use the constant length in non-generic code.
from strum.
There was discussion when the features were added about slices vs arrays. Like @T0mstone said, associated constants still aren't great to use. It also makes adding a new variant to an enum a breaking change because the length of the array changes, but slices don't have that issue.
from strum.
Related Issues (20)
- to_string and serialize when used together causes unreachable code HOT 2
- `get_bool` and `get_int` in `EnumProperty` are undocumented and always return None
- AsRef<str> and default variants
- EnumDiscriminants: can't infer type HOT 3
- Getting the discriminant from an enum variant HOT 3
- Publish new release. HOT 4
- AsRefStr documentation incorrectly states 'static ref is returned HOT 2
- Publish Git tags HOT 2
- TryFrom<Repr> for enums using FromRepr? HOT 2
- Implement `Iterator` for EnumTable HOT 6
- Customize error message for FromStr
- Support for const_into_str to Enable Static String Conversion in Const Context
- Accessing the EnumTable type through the enum HOT 1
- Error updating to 0.26 - trait bound `std::iter::FusedIterator` is not satisfied HOT 1
- Itertools 0.13.0 and strum derive macro EnumIter break if both are used at the same time HOT 2
- strum-macros 0.26.3 breaks `no_std` build HOT 5
- Round tripping "{{}}" doesn't work with Display + EnumString in 0.26 HOT 2
- EnumProperty must be defined only once in the macro namespace of this module
- Using `#[strum(to_string = "}")]` results in macro error HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from strum.