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