#[repr(transparent)]pub struct Flags<Enum, Primitive = <Enum as Flag>::Primitive> { /* private fields */ }
Expand description
Storage type for handling flags
Implementations
sourceimpl<Enum> Flags<Enum, <Enum as Flag>::Primitive> where
Enum: Flag,
impl<Enum> Flags<Enum, <Enum as Flag>::Primitive> where
Enum: Flag,
sourcepub fn from_flag(flag: Enum) -> Flags<Enum, <Enum as Flag>::Primitive>
pub fn from_flag(flag: Enum) -> Flags<Enum, <Enum as Flag>::Primitive>
Get a flag from a single enum value
sourcepub fn from_bits(
bits: <Enum as Flag>::Primitive
) -> Flags<Enum, <Enum as Flag>::Primitive>
pub fn from_bits(
bits: <Enum as Flag>::Primitive
) -> Flags<Enum, <Enum as Flag>::Primitive>
Get a flag from a numeric value
Note: the value is unchecked so any bit may be set. Be
careful because PartialEq
is a direct comparison of
underlying bits.
sourcepub fn bits_ref(&self) -> &<Enum as Flag>::Primitive
pub fn bits_ref(&self) -> &<Enum as Flag>::Primitive
Reference to numeric representation of the variant
sourcepub fn intersects<B>(self, rhs: B) -> bool where
B: Into<Flags<Enum, <Enum as Flag>::Primitive>>,
pub fn intersects<B>(self, rhs: B) -> bool where
B: Into<Flags<Enum, <Enum as Flag>::Primitive>>,
Check if at least one flag in common is set
sourcepub fn contains<B>(self, rhs: B) -> bool where
B: Into<Flags<Enum, <Enum as Flag>::Primitive>>,
pub fn contains<B>(self, rhs: B) -> bool where
B: Into<Flags<Enum, <Enum as Flag>::Primitive>>,
Check if all flags provided in rhs
are set
pub fn is_empty(&self) -> bool
pub fn is_all(&self) -> bool
Trait Implementations
sourceimpl<T, B> BitAnd<B> for Flags<T, <T as Flag>::Primitive> where
T: Flag,
B: Into<Flags<T, <T as Flag>::Primitive>>,
impl<T, B> BitAnd<B> for Flags<T, <T as Flag>::Primitive> where
T: Flag,
B: Into<Flags<T, <T as Flag>::Primitive>>,
sourceimpl<T, B> BitAndAssign<B> for Flags<T, <T as Flag>::Primitive> where
T: Flag,
B: Into<Flags<T, <T as Flag>::Primitive>>,
impl<T, B> BitAndAssign<B> for Flags<T, <T as Flag>::Primitive> where
T: Flag,
B: Into<Flags<T, <T as Flag>::Primitive>>,
sourcefn bitand_assign(&mut self, rhs: B)
fn bitand_assign(&mut self, rhs: B)
Performs the &=
operation. Read more
sourceimpl<T, B> BitOr<B> for Flags<T, <T as Flag>::Primitive> where
T: Flag,
B: Into<Flags<T, <T as Flag>::Primitive>>,
impl<T, B> BitOr<B> for Flags<T, <T as Flag>::Primitive> where
T: Flag,
B: Into<Flags<T, <T as Flag>::Primitive>>,
sourceimpl<T, B> BitOrAssign<B> for Flags<T, <T as Flag>::Primitive> where
T: Flag,
B: Into<Flags<T, <T as Flag>::Primitive>>,
impl<T, B> BitOrAssign<B> for Flags<T, <T as Flag>::Primitive> where
T: Flag,
B: Into<Flags<T, <T as Flag>::Primitive>>,
sourcefn bitor_assign(&mut self, rhs: B)
fn bitor_assign(&mut self, rhs: B)
Performs the |=
operation. Read more
sourceimpl<T, B> BitXor<B> for Flags<T, <T as Flag>::Primitive> where
T: Flag,
B: Into<Flags<T, <T as Flag>::Primitive>>,
impl<T, B> BitXor<B> for Flags<T, <T as Flag>::Primitive> where
T: Flag,
B: Into<Flags<T, <T as Flag>::Primitive>>,
sourceimpl<T, B> BitXorAssign<B> for Flags<T, <T as Flag>::Primitive> where
T: Flag,
B: Into<Flags<T, <T as Flag>::Primitive>>,
impl<T, B> BitXorAssign<B> for Flags<T, <T as Flag>::Primitive> where
T: Flag,
B: Into<Flags<T, <T as Flag>::Primitive>>,
sourcefn bitxor_assign(&mut self, rhs: B)
fn bitxor_assign(&mut self, rhs: B)
Performs the ^=
operation. Read more
sourceimpl<Enum, Primitive> PartialEq<Flags<Enum, Primitive>> for Flags<Enum, Primitive> where
Enum: PartialEq<Enum>,
Primitive: PartialEq<Primitive>,
impl<Enum, Primitive> PartialEq<Flags<Enum, Primitive>> for Flags<Enum, Primitive> where
Enum: PartialEq<Enum>,
Primitive: PartialEq<Primitive>,
sourceimpl PartialEq<Flags<ErrorFlags, <ErrorFlags as Flag>::Primitive>> for ErrorFlags
impl PartialEq<Flags<ErrorFlags, <ErrorFlags as Flag>::Primitive>> for ErrorFlags
impl<Enum, Primitive> Copy for Flags<Enum, Primitive> where
Enum: Copy,
Primitive: Copy,
impl<Enum, Primitive> Eq for Flags<Enum, Primitive> where
Enum: Eq,
Primitive: Eq,
impl<Enum, Primitive> StructuralEq for Flags<Enum, Primitive>
impl<Enum, Primitive> StructuralPartialEq for Flags<Enum, Primitive>
Auto Trait Implementations
impl<Enum, Primitive> RefUnwindSafe for Flags<Enum, Primitive> where
Enum: RefUnwindSafe,
Primitive: RefUnwindSafe,
impl<Enum, Primitive> Send for Flags<Enum, Primitive> where
Enum: Send,
Primitive: Send,
impl<Enum, Primitive> Sync for Flags<Enum, Primitive> where
Enum: Sync,
Primitive: Sync,
impl<Enum, Primitive> Unpin for Flags<Enum, Primitive> where
Enum: Unpin,
Primitive: Unpin,
impl<Enum, Primitive> UnwindSafe for Flags<Enum, Primitive> where
Enum: UnwindSafe,
Primitive: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
🔬 This is a nightly-only experimental API. (
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more