bitflags
bitflags generates flags enums with well-defined semantics and ergonomic end-user APIs.
You can use bitflags to:
- provide more user-friendly bindings to C APIs where flags may or may not be fully known in advance.
- generate efficient options types with string parsing and formatting support.
You can't use bitflags to:
-
guarantee only bits corresponding to defined flags will ever be set.
bitflagsallows access to the underlying bits type so arbitrary bits may be set. -
define bitfields.
bitflagsonly generates types where set bits denote the presence of some combination of flags.
Usage
Add this to your Cargo.toml:
[]
= "2.10.0"
and this to your source code:
use bitflags;
Example
Generate a flags structure:
use bitflags;
// The `bitflags!` macro generates `struct`s that manage a set of flags.
bitflags!
Cargo features
The bitflags library defines a few Cargo features that you can opt-in to:
std: Implement theErrortrait on error types used bybitflags.serde: Support derivingserdetraits on generated flags types.arbitrary: Support derivingarbitrarytraits on generated flags types.bytemuck: Support derivingbytemucktraits on generated flags types.
Also see bitflags_derive for other flags-aware traits.
Rust Version Support
The minimum supported Rust version is documented in the Cargo.toml file.
This may be bumped in minor releases as necessary.