diff options
| author | bors <bors@rust-lang.org> | 2014-04-30 11:11:49 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2014-04-30 11:11:49 -0700 |
| commit | a3f9f37014c77cda1ae53bf0984190e877aa413a (patch) | |
| tree | a0d6f9a1989f60675df6d369b6761b45a9c15587 /src/rustllvm/RustWrapper.cpp | |
| parent | 7e9f3ea42361a5a938a4f22beff28bb2ade48af4 (diff) | |
| parent | 63ee7bb0db642e43e19b8ec597521858805ad21e (diff) | |
| download | rust-a3f9f37014c77cda1ae53bf0984190e877aa413a.tar.gz rust-a3f9f37014c77cda1ae53bf0984190e877aa413a.zip | |
auto merge of #13072 : bjz/rust/bitset, r=alexcrichton
The `bitflags!` macro generates a `struct` that holds a set of C-style bitmask flags. It is useful for creating typesafe wrappers for C APIs.
For example:
~~~rust
#[feature(phase)];
#[phase(syntax)] extern crate collections;
bitflags!(Flags: u32 {
FlagA = 0x00000001,
FlagB = 0x00000010,
FlagC = 0x00000100,
FlagABC = FlagA.bits
| FlagB.bits
| FlagC.bits
})
fn main() {
let e1 = FlagA | FlagC;
let e2 = FlagB | FlagC;
assert!((e1 | e2) == FlagABC); // union
assert!((e1 & e2) == FlagC); // intersection
assert!((e1 - e2) == FlagA); // set difference
}
~~~
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions
