Make libbitflags-1.3.2 visible to com.android.uwb am: 7642f7752d am: 9449d03c4a am: acc3cf2062 am: 7d3bf61ce7

Original change: https://android-review.googlesource.com/c/platform/external/rust/crates/bitflags/+/2614374

Change-Id: Iab6b1e700d77a3fb9f543592380bbfaed2ba433a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
tree: 2cdb77df6398748f9d131b6ba9bc9c8670392e0a
  1. .github/
  2. 1.3.2/
  3. benches/
  4. examples/
  5. patches/
  6. src/
  7. tests/
  8. .cargo_vcs_info.json
  9. .gitignore
  10. Android.bp
  11. Cargo.toml
  12. Cargo.toml.orig
  13. cargo2android.json
  14. CHANGELOG.md
  15. CODE_OF_CONDUCT.md
  16. CONTRIBUTING.md
  17. LICENSE-APACHE
  18. LICENSE-MIT
  19. METADATA
  20. MODULE_LICENSE_APACHE2
  21. OWNERS
  22. README.md
  23. SECURITY.md
  24. TEST_MAPPING
README.md

bitflags

Rust Latest version Documentation License

A Rust macro to generate structures which behave like a set of bitflags

Usage

Add this to your Cargo.toml:

[dependencies]
bitflags = "2.2.1"

and this to your source code:

use bitflags::bitflags;

Example

Generate a flags structure:

use bitflags::bitflags;

// The `bitflags!` macro generates `struct`s that manage a set of flags.
bitflags! {
    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
    struct Flags: u32 {
        const A = 0b00000001;
        const B = 0b00000010;
        const C = 0b00000100;
        const ABC = Self::A.bits() | Self::B.bits() | Self::C.bits();
    }
}

fn main() {
    let e1 = Flags::A | Flags::C;
    let e2 = Flags::B | Flags::C;
    assert_eq!((e1 | e2), Flags::ABC);   // union
    assert_eq!((e1 & e2), Flags::C);     // intersection
    assert_eq!((e1 - e2), Flags::A);     // set difference
    assert_eq!(!e2, Flags::A);           // set complement
}

Rust Version Support

The minimum supported Rust version is documented in the Cargo.toml file. This may be bumped in minor releases as necessary.