#[inline]
attributes (#194)This is a re-release of 1.0.5
, which was yanked due to a bug in the RLS.
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;
30% improvement in compile time of bitflags crate (#156)
Documentation improvements (#153)
Implementation cleanup (#149)
pub(restricted)
specifier on the bitflags struct (#135)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;
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
, and Binary
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)
i128
and u128
integer types (#57)flags.set(SOME_FLAG, true)
or flags.set(SOME_FLAG, false)
(#55) This may break code that defines its own set method(yanked)
bitflags!
macro to refer to items imported from other modules (#51)no_std
feature was removed as it is now the defaultassignment_operators
feature was remove as it is now enabled by default