1# 1.3.2 2 3- Allow `non_snake_case` in generated flags types ([#256]) 4 5[#252]: https://github.com/bitflags/bitflags/pull/256 6 7# 1.3.1 8 9- Revert unconditional `#[repr(transparent)]` ([#252]) 10 11[#252]: https://github.com/bitflags/bitflags/pull/252 12 13# 1.3.0 (yanked) 14 15- Add `#[repr(transparent)]` ([#187]) 16 17- End `empty` doc comment with full stop ([#202]) 18 19- Fix typo in crate root docs ([#206]) 20 21- Document from_bits_unchecked unsafety ([#207]) 22 23- Let `is_all` ignore extra bits ([#211]) 24 25- Allows empty flag definition ([#225]) 26 27- Making crate accessible from std ([#227]) 28 29- Make `from_bits` a const fn ([#229]) 30 31- Allow multiple bitflags structs in one macro invocation ([#235]) 32 33- Add named functions to perform set operations ([#244]) 34 35- Fix typos in method docs ([#245]) 36 37- Modernization of the `bitflags` macro to take advantage of newer features and 2018 idioms ([#246]) 38 39- Fix regression (in an unreleased feature) and simplify tests ([#247]) 40 41- Use `Self` and fix bug when overriding `stringify!` ([#249]) 42 43[#187]: https://github.com/bitflags/bitflags/pull/187 44[#202]: https://github.com/bitflags/bitflags/pull/202 45[#206]: https://github.com/bitflags/bitflags/pull/206 46[#207]: https://github.com/bitflags/bitflags/pull/207 47[#211]: https://github.com/bitflags/bitflags/pull/211 48[#225]: https://github.com/bitflags/bitflags/pull/225 49[#227]: https://github.com/bitflags/bitflags/pull/227 50[#229]: https://github.com/bitflags/bitflags/pull/229 51[#235]: https://github.com/bitflags/bitflags/pull/235 52[#244]: https://github.com/bitflags/bitflags/pull/244 53[#245]: https://github.com/bitflags/bitflags/pull/245 54[#246]: https://github.com/bitflags/bitflags/pull/246 55[#247]: https://github.com/bitflags/bitflags/pull/247 56[#249]: https://github.com/bitflags/bitflags/pull/249 57 58# 1.2.1 59 60- Remove extraneous `#[inline]` attributes ([#194]) 61 62[#194]: https://github.com/bitflags/bitflags/pull/194 63 64# 1.2.0 65 66- Fix typo: {Lower, Upper}Exp - {Lower, Upper}Hex ([#183]) 67 68- Add support for "unknown" bits ([#188]) 69 70[#183]: https://github.com/rust-lang-nursery/bitflags/pull/183 71[#188]: https://github.com/rust-lang-nursery/bitflags/pull/188 72 73# 1.1.0 74 75This is a re-release of `1.0.5`, which was yanked due to a bug in the RLS. 76 77# 1.0.5 78 79- Use compiletest_rs flags supported by stable toolchain ([#171]) 80 81- Put the user provided attributes first ([#173]) 82 83- Make bitflags methods `const` on newer compilers ([#175]) 84 85[#171]: https://github.com/rust-lang-nursery/bitflags/pull/171 86[#173]: https://github.com/rust-lang-nursery/bitflags/pull/173 87[#175]: https://github.com/rust-lang-nursery/bitflags/pull/175 88 89# 1.0.4 90 91- Support Rust 2018 style macro imports ([#165]) 92 93 ```rust 94 use bitflags::bitflags; 95 ``` 96 97[#165]: https://github.com/rust-lang-nursery/bitflags/pull/165 98 99# 1.0.3 100 101- Improve zero value flag handling and documentation ([#157]) 102 103[#157]: https://github.com/rust-lang-nursery/bitflags/pull/157 104 105# 1.0.2 106 107- 30% improvement in compile time of bitflags crate ([#156]) 108 109- Documentation improvements ([#153]) 110 111- Implementation cleanup ([#149]) 112 113[#156]: https://github.com/rust-lang-nursery/bitflags/pull/156 114[#153]: https://github.com/rust-lang-nursery/bitflags/pull/153 115[#149]: https://github.com/rust-lang-nursery/bitflags/pull/149 116 117# 1.0.1 118- Add support for `pub(restricted)` specifier on the bitflags struct ([#135]) 119- Optimize performance of `all()` when called from a separate crate ([#136]) 120 121[#135]: https://github.com/rust-lang-nursery/bitflags/pull/135 122[#136]: https://github.com/rust-lang-nursery/bitflags/pull/136 123 124# 1.0.0 125- **[breaking change]** Macro now generates [associated constants](https://doc.rust-lang.org/reference/items.html#associated-constants) ([#24]) 126 127- **[breaking change]** Minimum supported version is Rust **1.20**, due to usage of associated constants 128 129- After being broken in 0.9, the `#[deprecated]` attribute is now supported again ([#112]) 130 131- Other improvements to unit tests and documentation ([#106] and [#115]) 132 133[#24]: https://github.com/rust-lang-nursery/bitflags/pull/24 134[#106]: https://github.com/rust-lang-nursery/bitflags/pull/106 135[#112]: https://github.com/rust-lang-nursery/bitflags/pull/112 136[#115]: https://github.com/rust-lang-nursery/bitflags/pull/115 137 138## How to update your code to use associated constants 139Assuming the following structure definition: 140```rust 141bitflags! { 142 struct Something: u8 { 143 const FOO = 0b01, 144 const BAR = 0b10 145 } 146} 147``` 148In 0.9 and older you could do: 149```rust 150let x = FOO.bits | BAR.bits; 151``` 152Now you must use: 153```rust 154let x = Something::FOO.bits | Something::BAR.bits; 155``` 156 157# 0.9.1 158- Fix the implementation of `Formatting` traits when other formatting traits were present in scope ([#105]) 159 160[#105]: https://github.com/rust-lang-nursery/bitflags/pull/105 161 162# 0.9.0 163- **[breaking change]** Use struct keyword instead of flags to define bitflag types ([#84]) 164 165- **[breaking change]** Terminate const items with semicolons instead of commas ([#87]) 166 167- Implement the `Hex`, `Octal`, and `Binary` formatting traits ([#86]) 168 169- Printing an empty flag value with the `Debug` trait now prints "(empty)" instead of nothing ([#85]) 170 171- The `bitflags!` macro can now be used inside of a fn body, to define a type local to that function ([#74]) 172 173[#74]: https://github.com/rust-lang-nursery/bitflags/pull/74 174[#84]: https://github.com/rust-lang-nursery/bitflags/pull/84 175[#85]: https://github.com/rust-lang-nursery/bitflags/pull/85 176[#86]: https://github.com/rust-lang-nursery/bitflags/pull/86 177[#87]: https://github.com/rust-lang-nursery/bitflags/pull/87 178 179# 0.8.2 180- Update feature flag used when building bitflags as a dependency of the Rust toolchain 181 182# 0.8.1 183- Allow bitflags to be used as a dependency of the Rust toolchain 184 185# 0.8.0 186- Add support for the experimental `i128` and `u128` integer types ([#57]) 187- Add set method: `flags.set(SOME_FLAG, true)` or `flags.set(SOME_FLAG, false)` ([#55]) 188 This may break code that defines its own set method 189 190[#55]: https://github.com/rust-lang-nursery/bitflags/pull/55 191[#57]: https://github.com/rust-lang-nursery/bitflags/pull/57 192 193# 0.7.1 194*(yanked)* 195 196# 0.7.0 197- Implement the Extend trait ([#49]) 198- Allow definitions inside the `bitflags!` macro to refer to items imported from other modules ([#51]) 199 200[#49]: https://github.com/rust-lang-nursery/bitflags/pull/49 201[#51]: https://github.com/rust-lang-nursery/bitflags/pull/51 202 203# 0.6.0 204- The `no_std` feature was removed as it is now the default 205- The `assignment_operators` feature was remove as it is now enabled by default 206- Some clippy suggestions have been applied 207