-
Use compiletest_rs flags supported by stable toolchain (#171)
-
Put the user provided attributes first (#173)
-
Make bitflags methods
const
on newer compilers (#175)
-
Support Rust 2018 style macro imports (#165)
use bitflags::bitflags;
- Improve zero value flag handling and documentation (#157)
-
30% improvement in compile time of bitflags crate (#156)
-
Documentation improvements (#153)
-
Implementation cleanup (#149)
- Add support for
pub(restricted)
specifier on the bitflags struct (#135) - Optimize performance of
all()
when called from a separate crate (#136)
-
[breaking change] Macro now generates associated constants (#24)
-
[breaking change] Minimum supported version is Rust 1.20, due to usage of associated constants
-
After being broken in 0.9, the
#[deprecated]
attribute is now supported again (#112) -
Other improvements to unit tests and documentation (#106 and #115)
Assuming the following structure definition:
bitflags! {
struct Something: u8 {
const FOO = 0b01,
const BAR = 0b10
}
}
In 0.9 and older you could do:
let x = FOO.bits | BAR.bits;
Now you must use:
let x = Something::FOO.bits | Something::BAR.bits;
- Fix the implementation of
Formatting
traits when other formatting traits were present in scope (#105)
-
[breaking change] Use struct keyword instead of flags to define bitflag types (#84)
-
[breaking change] Terminate const items with semicolons instead of commas (#87)
-
Implement the
Hex
,Octal
, andBinary
formatting traits (#86) -
Printing an empty flag value with the
Debug
trait now prints "(empty)" instead of nothing (#85) -
The
bitflags!
macro can now be used inside of a fn body, to define a type local to that function (#74)
- Update feature flag used when building bitflags as a dependency of the Rust toolchain
- Allow bitflags to be used as a dependency of the Rust toolchain
- Add support for the experimental
i128
andu128
integer types (#57) - Add set method:
flags.set(SOME_FLAG, true)
orflags.set(SOME_FLAG, false)
(#55) This may break code that defines its own set method
(yanked)
- Implement the Extend trait (#49)
- Allow definitions inside the
bitflags!
macro to refer to items imported from other modules (#51)
- The
no_std
feature was removed as it is now the default - The
assignment_operators
feature was remove as it is now enabled by default - Some clippy suggestions have been applied