Logo
Explore Help
Sign in
gh-bitflags/bitflags
Watch
1
0
Fork
You've already forked bitflags
0
Code Issues 10 Pull requests Releases 53 Activity
53 releases 53 tags
  • 2.0.0 b5a5ecf517

    2.0.0 Stable

    archiver-bot released this 2023-03-13 02:02:54 -05:00 | 357 commits to main since this release

    Major changes

    This release includes some major changes over 1.x. If you use bitflags! types in your public API then upgrading this library may cause breakage in your downstream users.

    ⚠️ Serialization

    You'll need to add the serde Cargo feature in order to #[derive(Serialize, Deserialize)] on your generated flags types:

    bitflags! {
        #[derive(Serialize, Deserialize)]
        #[serde(transparent)]
        pub struct Flags: T {
            ..
        }
    }
    

    where T is the underlying bits type you're using, such as u32.

    The default serialization format with serde has changed if you #[derive(Serialize, Deserialize)] on your generated flags types. It will now use a formatted string for human-readable formats and the underlying bits type for compact formats.

    To keep the old format, see the https://github.com/KodrAus/bitflags-serde-legacy library.

    ⚠️ Traits

    Generated flags types now derive fewer traits. If you need to maintain backwards compatibility, you can derive the following yourself:

    #[derive(PartialEq, Eq, PartialOrd, Ord, Hash, Debug, Clone, Copy)]
    

    ⚠️ Methods

    The unsafe from_bits_unchecked method is now a safe from_bits_retain method.

    You can add the following method to your generated types to keep them compatible:

    #[deprecated = "use the safe `from_bits_retain` method instead"]
    pub unsafe fn from_bits_unchecked(bits: T) -> Self {
        Self::from_bits_retain(bits)
    }
    

    where T is the underlying bits type you're using, such as u32.

    ⚠️ .bits field

    You can now use the .bits() method instead of the old .bits.

    The representation of generated flags types has changed from a struct with the single field bits to a newtype.

    Contributions

    • Fix a typo and call out MSRV bump by @KodrAus in https://github.com/bitflags/bitflags/pull/259
    • BitFlags trait by @arturoc in https://github.com/bitflags/bitflags/pull/220
    • Add a hidden trait to discourage manual impls of BitFlags by @KodrAus in https://github.com/bitflags/bitflags/pull/261
    • Sanitize Ok by @konsumlamm in https://github.com/bitflags/bitflags/pull/266
    • Fix bug in Debug implementation by @konsumlamm in https://github.com/bitflags/bitflags/pull/268
    • Fix a typo in the generated documentation by @wackbyte in https://github.com/bitflags/bitflags/pull/271
    • Use SPDX license format by @atouchet in https://github.com/bitflags/bitflags/pull/272
    • serde tests fail in CI by @arturoc in https://github.com/bitflags/bitflags/pull/277
    • Fix beta test output by @KodrAus in https://github.com/bitflags/bitflags/pull/279
    • Add example to the README.md file by @tiaanl in https://github.com/bitflags/bitflags/pull/270
    • Iterator over all the enabled options by @arturoc in https://github.com/bitflags/bitflags/pull/278
    • from_bits_(truncate) fail with composite flags by @arturoc in https://github.com/bitflags/bitflags/pull/276
    • Add more platform coverage to CI by @KodrAus in https://github.com/bitflags/bitflags/pull/280
    • rework the way cfgs are handled by @KodrAus in https://github.com/bitflags/bitflags/pull/281
    • Split generated code into two types by @KodrAus in https://github.com/bitflags/bitflags/pull/282
    • expose bitflags iters using nameable types by @KodrAus in https://github.com/bitflags/bitflags/pull/286
    • Support creating flags from their names by @KodrAus in https://github.com/bitflags/bitflags/pull/287
    • Update README.md by @KodrAus in https://github.com/bitflags/bitflags/pull/288
    • Prepare for 2.0.0-rc.1 release by @KodrAus in https://github.com/bitflags/bitflags/pull/289
    • Add missing "if" to contains doc-comment in traits.rs by @rusty-snake in https://github.com/bitflags/bitflags/pull/291
    • Forbid unsafe_code by @fintelia in https://github.com/bitflags/bitflags/pull/294
    • serde: enable no-std support by @nim65s in https://github.com/bitflags/bitflags/pull/296
    • Add a parser for flags formatted as bar-separated-values by @KodrAus in https://github.com/bitflags/bitflags/pull/297
    • Prepare for 2.0.0-rc.2 release by @KodrAus in https://github.com/bitflags/bitflags/pull/299
    • Use strip_prefix instead of starts_with + slice by @QuinnPainter in https://github.com/bitflags/bitflags/pull/301
    • Fix up some clippy lints by @KodrAus in https://github.com/bitflags/bitflags/pull/302
    • Prepare for 2.0.0-rc.3 release by @KodrAus in https://github.com/bitflags/bitflags/pull/303
    • feat: Add minimum permissions to rust.yml workflow by @gabibguti in https://github.com/bitflags/bitflags/pull/305
    • fix a nit in the readme by @s1rius in https://github.com/bitflags/bitflags/pull/307
    • Prepare for 2.0.0 release by @KodrAus in https://github.com/bitflags/bitflags/pull/306

    New Contributors

    • @wackbyte made their first contribution in https://github.com/bitflags/bitflags/pull/271
    • @atouchet made their first contribution in https://github.com/bitflags/bitflags/pull/272
    • @tiaanl made their first contribution in https://github.com/bitflags/bitflags/pull/270
    • @rusty-snake made their first contribution in https://github.com/bitflags/bitflags/pull/291
    • @fintelia made their first contribution in https://github.com/bitflags/bitflags/pull/294
    • @nim65s made their first contribution in https://github.com/bitflags/bitflags/pull/296
    • @QuinnPainter made their first contribution in https://github.com/bitflags/bitflags/pull/301
    • @gabibguti made their first contribution in https://github.com/bitflags/bitflags/pull/305
    • @s1rius made their first contribution in https://github.com/bitflags/bitflags/pull/307

    Full Changelog: https://github.com/bitflags/bitflags/compare/1.3.2...2.0.0

    Downloads
    • Source code (ZIP)
      0 downloads
    • Source code (TAR.GZ)
      0 downloads
Powered by Forgejo Version: 17.0.1 Page: 43ms Template: 8ms
English
Bahasa Indonesia Dansk Deutsch English Español Esperanto Filipino Français Italiano Latviešu Magyar nyelv Nederlands Plattdüütsch Polski Português de Portugal Português do Brasil Slovenščina Suomi Svenska Türkçe Čeština Ελληνικά Български Русский Українська فارسی 日本語 简体中文 繁體中文(台灣) 繁體中文(香港) 한국어
Licenses API