Skip to content

Releases: bitflags/bitflags

2.5.0

19 Mar 00:57
e5ff0ca
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 2.4.2...2.5.0

2.4.2

16 Jan 22:08
a5f9ce2
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 2.4.1...2.4.2

2.4.1

15 Oct 22:24
6c67922
Compare
Choose a tag to compare

What's Changed

Full Changelog: 2.4.0...2.4.1

2.4.0

11 Aug 09:32
472e392
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 2.3.3...2.4.0

2.3.3

27 Jun 04:27
6ed2e8d
Compare
Choose a tag to compare

Changes to -=

The -= operator was incorrectly changed to truncate bits that didn't correspond to valid flags in 2.3.0. This has
been fixed up so it once again behaves the same as - and difference.

Changes to !

The ! operator previously called Self::from_bits_truncate, which would truncate any bits that only partially
overlapped with a valid flag. It will now use bits & Self::all().bits(), so any bits that overlap any bits
specified by any flag will be respected. This is unlikely to have any practical implications, but enables defining
a flag like const ALL = !0 as a way to signal that any bit pattern is a known set of flags.

Changes to formatting

Zero-valued flags will never be printed. You'll either get 0x0 for empty flags using debug formatting, or the
set of flags with zero-valued flags omitted for others.

Composite flags will no longer be redundantly printed if there are extra bits to print at the end that don't correspond
to a valid flag.

What's Changed

  • Fix up incorrect sub assign behavior and other cleanups by @KodrAus in #366

Full Changelog: 2.3.2...2.3.3

2.3.2

13 Jun 05:22
09f71f4
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 2.3.1...2.3.2

2.3.1

17 May 14:25
cf01ab0
Compare
Choose a tag to compare

What's Changed

Full Changelog: 2.3.0...2.3.1

2.3.0

17 May 02:55
31d3e4a
Compare
Choose a tag to compare

Major changes

BitFlags trait deprecated in favor of Flags trait

This release introduces the Flags trait and deprecates the BitFlags trait. These two traits are semver compatible so if you have public API code depending on BitFlags you can move to Flags without breaking end-users. This is possible because the BitFlags trait was never publicly implementable, so it now carries Flags as a supertrait. All implementations of Flags additionally implement BitFlags.

The Flags trait is a publicly implementable version of the old BitFlags trait. The original BitFlags trait carried some macro baggage that made it difficult to implement, so a new Flags trait has been introduced as the One True Trait for interacting with flags types generically. See the the macro_free and custom_derive examples for more details.

Bits trait publicly exposed

The Bits trait for the underlying storage of flags values is also now publicly implementable. This lets you define your own exotic backing storage for flags. See the custom_bits_type example for more details.

What's Changed

  • Use explicit hashes for actions steps by @KodrAus in #350
  • Support ejecting flags types from the bitflags macro by @KodrAus in #351

Full Changelog: 2.2.1...2.3.0

2.2.1

24 Apr 06:32
0c318c0
Compare
Choose a tag to compare

What's Changed

Full Changelog: 2.2.0...2.2.1

2.2.0 (yanked)

19 Apr 04:48
cbcafa7
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 2.1.0...2.2.0