Comments (7)
May be generate const array or const function that return array that contains
all values?
Then implementation of iteration will be strait forward,
plus the array may also contains names:
const fn all_values_names() -> [(Flag, &'static str); N]
This helps in implementation of custom serialization/deserialization (#147) or custom debug (#168).
What do you think?
Example of possible use-case: I want parse / generate strings like: "ab bc cd" <-> Flags::AB | Flags::BC | Flags::CD
,
to generate string I need iteration plus names of constants in lower-case,
to deserialize I need names in lower-case
from bitflags.
Seems plausible!
from bitflags.
@alexcrichton Is this something that would be accepted in the library?
from bitflags.
I was just thinking about implementing this feature for some code I'm working on, if it's not already implemented.
from bitflags.
Would love this
from bitflags.
In #278 we merged an implementation that allows iterating over flags and their names. It effectively looks like:
pub fn iter(self) -> impl Iterator<Item = (&'static str, Self)>
It effectively does what @Dushistov described, but internally. There's still design work to be done on this though, IntoIterator
to implement, and some refactoring of how we generate flags types so we can make that iter
function return a concrete type instead of impl Trait
so I'll keep this ticket open for now to consider those.
from bitflags.
This is now implemented in 2.0.0-rc.1
from bitflags.
Related Issues (20)
- Breaking change released as 2.3.0, which causes build failures on upgrade HOT 6
- Problems deriving serde after upgrading HOT 2
- Treatment of unknown bits in operators is inconsistent HOT 18
- Inconsistent debug output for flag with no bits HOT 4
- SWC - Update to 2.3.x causes incorrect output HOT 9
- Flagging supply-chain security issues HOT 3
- Match expression question HOT 2
- messes with dependent crates! HOT 3
- Documenting bitflags: how to get documentation for the generated bitflags HOT 4
- clippy::iter_without_into_iter HOT 3
- Feature guard `parser`? HOT 4
- Static member variable on the impl? HOT 2
- [Feature Request] `repr(packed)` for internal bits types HOT 2
- [Feature Request] Smaller internal types with non-breaking size increases HOT 3
- [Feature Request] Serialize as struct of bools HOT 2
- [Feature Request] Make Flags trait methods public HOT 1
- Please allow to use the "internal" derives in the "custom-derive" case HOT 6
- Enforce uniqueness of flags HOT 4
- FR: Please make operators cosnt. bitwise or operator `|` is not const HOT 3
- Allow specifying attributes in `impl` mode
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 bitflags.