Skip to content

Commit

Permalink
Add a capabilities example to the README.md file.
Browse files Browse the repository at this point in the history
  • Loading branch information
tiaanl committed Apr 8, 2022
1 parent 0bc11cb commit decb0f6
Showing 1 changed file with 27 additions and 0 deletions.
27 changes: 27 additions & 0 deletions README.md
Expand Up @@ -27,6 +27,33 @@ and this to your source code:
use bitflags::bitflags;
```

## Example

Generate a flags structure:

```rust
use bitflags::bitflags;

// The `bitflags!` macro generates `struct`s that manage a set of flags.
bitflags! {
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 1.46 due to use of associated constants and const functions.

0 comments on commit decb0f6

Please sign in to comment.