diff options
| author | bors <bors@rust-lang.org> | 2014-10-18 10:17:14 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2014-10-18 10:17:14 +0000 |
| commit | c7c342d10c34e1ca1d809da42d7794db2d0860ad (patch) | |
| tree | 28a827ab43a34a4e967657d8a122482c0ddb4aec /src/libstd | |
| parent | 4b064a59cc84409829b536071073dca5e8dd209e (diff) | |
| parent | 416e6ecf8c392a0346b0a46bc5712e4371602922 (diff) | |
| download | rust-c7c342d10c34e1ca1d809da42d7794db2d0860ad.tar.gz rust-c7c342d10c34e1ca1d809da42d7794db2d0860ad.zip | |
auto merge of #18103 : pcwalton/rust/bitflags-inline, r=thestinger
Servo really wants this. r? @nick29581
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/bitflags.rs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/libstd/bitflags.rs b/src/libstd/bitflags.rs index 42e3a823ff4..fb5934c6af6 100644 --- a/src/libstd/bitflags.rs +++ b/src/libstd/bitflags.rs @@ -127,22 +127,26 @@ macro_rules! bitflags { impl $BitFlags { /// Returns an empty set of flags. + #[inline] pub fn empty() -> $BitFlags { $BitFlags { bits: 0 } } /// Returns the set containing all flags. + #[inline] pub fn all() -> $BitFlags { $BitFlags { bits: $($value)|+ } } /// Returns the raw value of the flags currently stored. + #[inline] pub fn bits(&self) -> $T { self.bits } /// Convert from underlying bit representation, unless that /// representation contains bits that do not correspond to a flag. + #[inline] pub fn from_bits(bits: $T) -> ::std::option::Option<$BitFlags> { if (bits & !$BitFlags::all().bits()) != 0 { ::std::option::None @@ -153,21 +157,25 @@ macro_rules! bitflags { /// Convert from underlying bit representation, dropping any bits /// that do not correspond to flags. + #[inline] pub fn from_bits_truncate(bits: $T) -> $BitFlags { $BitFlags { bits: bits } & $BitFlags::all() } /// Returns `true` if no flags are currently stored. + #[inline] pub fn is_empty(&self) -> bool { *self == $BitFlags::empty() } /// Returns `true` if all flags are currently set. + #[inline] pub fn is_all(&self) -> bool { *self == $BitFlags::all() } /// Returns `true` if there are flags common to both `self` and `other`. + #[inline] pub fn intersects(&self, other: $BitFlags) -> bool { !(self & other).is_empty() } @@ -179,16 +187,19 @@ macro_rules! bitflags { } /// Inserts the specified flags in-place. + #[inline] pub fn insert(&mut self, other: $BitFlags) { self.bits |= other.bits; } /// Removes the specified flags in-place. + #[inline] pub fn remove(&mut self, other: $BitFlags) { self.bits &= !other.bits; } /// Toggles the specified flags in-place. + #[inline] pub fn toggle(&mut self, other: $BitFlags) { self.bits ^= other.bits; } |
