# Struct fidl_data_zither_structs::Bits

source · `#[repr(C)]pub struct Bits(/* private fields */);`

## Implementations§

source§### impl Bits

### impl Bits

source#### pub const fn bits(&self) -> u16

#### pub const fn bits(&self) -> u16

Get the underlying bits value.

The returned value is exactly the bits set in this flags value.

source#### pub const fn from_bits(bits: u16) -> Option<Self>

#### pub const fn from_bits(bits: u16) -> Option<Self>

Convert from a bits value.

This method will return `None`

if any unknown bits are set.

source#### pub const fn from_bits_truncate(bits: u16) -> Self

#### pub const fn from_bits_truncate(bits: u16) -> Self

Convert from a bits value, unsetting any unknown bits.

source#### pub const fn from_bits_retain(bits: u16) -> Self

#### pub const fn from_bits_retain(bits: u16) -> Self

Convert from a bits value exactly.

source#### pub fn from_name(name: &str) -> Option<Self>

#### pub fn from_name(name: &str) -> Option<Self>

Get a flags value with the bits of a flag with the given name set.

This method will return `None`

if `name`

is empty or doesn’t
correspond to any named flag.

source#### pub const fn intersects(&self, other: Self) -> bool

#### pub const fn intersects(&self, other: Self) -> bool

Whether any set bits in a source flags value are also set in a target flags value.

source#### pub const fn contains(&self, other: Self) -> bool

#### pub const fn contains(&self, other: Self) -> bool

Whether all set bits in a source flags value are also set in a target flags value.

source#### pub fn remove(&mut self, other: Self)

#### pub fn remove(&mut self, other: Self)

The intersection of a source flags value with the complement of a target flags value (`&!`

).

This method is not equivalent to `self & !other`

when `other`

has unknown bits set.
`remove`

won’t truncate `other`

, but the `!`

operator will.

source#### pub fn toggle(&mut self, other: Self)

#### pub fn toggle(&mut self, other: Self)

The bitwise exclusive-or (`^`

) of the bits in two flags values.

source#### pub fn set(&mut self, other: Self, value: bool)

#### pub fn set(&mut self, other: Self, value: bool)

Call `insert`

when `value`

is `true`

or `remove`

when `value`

is `false`

.

source#### pub const fn intersection(self, other: Self) -> Self

#### pub const fn intersection(self, other: Self) -> Self

The bitwise and (`&`

) of the bits in two flags values.

source#### pub const fn union(self, other: Self) -> Self

#### pub const fn union(self, other: Self) -> Self

The bitwise or (`|`

) of the bits in two flags values.

source#### pub const fn difference(self, other: Self) -> Self

#### pub const fn difference(self, other: Self) -> Self

The intersection of a source flags value with the complement of a target flags value (`&!`

).

This method is not equivalent to `self & !other`

when `other`

has unknown bits set.
`difference`

won’t truncate `other`

, but the `!`

operator will.

source#### pub const fn symmetric_difference(self, other: Self) -> Self

#### pub const fn symmetric_difference(self, other: Self) -> Self

The bitwise exclusive-or (`^`

) of the bits in two flags values.

source#### pub const fn complement(self) -> Self

#### pub const fn complement(self) -> Self

The bitwise negation (`!`

) of the bits in a flags value, truncating the result.

source§### impl Bits

### impl Bits

source#### pub const fn iter(&self) -> Iter<Bits>

#### pub const fn iter(&self) -> Iter<Bits>

Yield a set of contained flags values.

Each yielded flags value will correspond to a defined named flag. Any unknown bits will be yielded together as a final flags value.

source#### pub const fn iter_names(&self) -> IterNames<Bits>

#### pub const fn iter_names(&self) -> IterNames<Bits>

Yield a set of contained named flags values.

This method is like `iter`

, except only yields bits in contained named flags.
Any unknown bits, or bits not corresponding to a contained flag will not be yielded.

## Trait Implementations§

source§### impl BitAndAssign for Bits

### impl BitAndAssign for Bits

source§#### fn bitand_assign(&mut self, other: Self)

#### fn bitand_assign(&mut self, other: Self)

The bitwise and (`&`

) of the bits in two flags values.

source§### impl BitOrAssign for Bits

### impl BitOrAssign for Bits

source§#### fn bitor_assign(&mut self, other: Self)

#### fn bitor_assign(&mut self, other: Self)

The bitwise or (`|`

) of the bits in two flags values.

source§### impl BitXorAssign for Bits

### impl BitXorAssign for Bits

source§#### fn bitxor_assign(&mut self, other: Self)

#### fn bitxor_assign(&mut self, other: Self)

The bitwise exclusive-or (`^`

) of the bits in two flags values.

source§### impl Extend<Bits> for Bits

### impl Extend<Bits> for Bits

source§#### fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

#### fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

The bitwise or (`|`

) of the bits in each flags value.

source§#### fn extend_one(&mut self, item: A)

#### fn extend_one(&mut self, item: A)

`extend_one`

)source§#### fn extend_reserve(&mut self, additional: usize)

#### fn extend_reserve(&mut self, additional: usize)

`extend_one`

)source§### impl Flags for Bits

### impl Flags for Bits

source§#### fn from_bits_retain(bits: u16) -> Bits

#### fn from_bits_retain(bits: u16) -> Bits

source§#### fn from_bits_truncate(bits: Self::Bits) -> Self

#### fn from_bits_truncate(bits: Self::Bits) -> Self

source§#### fn from_name(name: &str) -> Option<Self>

#### fn from_name(name: &str) -> Option<Self>

source§#### fn iter_names(&self) -> IterNames<Self>

#### fn iter_names(&self) -> IterNames<Self>

source§#### fn intersects(&self, other: Self) -> boolwhere
Self: Sized,

#### fn intersects(&self, other: Self) -> boolwhere
Self: Sized,

source§#### fn contains(&self, other: Self) -> boolwhere
Self: Sized,

#### fn contains(&self, other: Self) -> boolwhere
Self: Sized,

source§#### fn insert(&mut self, other: Self)where
Self: Sized,

#### fn insert(&mut self, other: Self)where
Self: Sized,

`|`

) of the bits in two flags values.source§#### fn remove(&mut self, other: Self)where
Self: Sized,

#### fn remove(&mut self, other: Self)where
Self: Sized,

`&!`

). Read moresource§#### fn toggle(&mut self, other: Self)where
Self: Sized,

#### fn toggle(&mut self, other: Self)where
Self: Sized,

`^`

) of the bits in two flags values.source§#### fn intersection(self, other: Self) -> Self

#### fn intersection(self, other: Self) -> Self

`&`

) of the bits in two flags values.source§#### fn difference(self, other: Self) -> Self

#### fn difference(self, other: Self) -> Self

`&!`

). Read moresource§#### fn symmetric_difference(self, other: Self) -> Self

#### fn symmetric_difference(self, other: Self) -> Self

`^`

) of the bits in two flags values.source§#### fn complement(self) -> Self

#### fn complement(self) -> Self

`!`

) of the bits in a flags value, truncating the result.source§### impl FromBytes for Bits

### impl FromBytes for Bits

source§### impl FromIterator<Bits> for Bits

### impl FromIterator<Bits> for Bits

source§#### fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

#### fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

The bitwise or (`|`

) of the bits in each flags value.

source§### impl IntoIterator for Bits

### impl IntoIterator for Bits

source§### impl Ord for Bits

### impl Ord for Bits

source§### impl PartialEq for Bits

### impl PartialEq for Bits

source§### impl PartialOrd for Bits

### impl PartialOrd for Bits

1.0.0 · source§#### fn le(&self, other: &Rhs) -> bool

#### fn le(&self, other: &Rhs) -> bool

`self`

and `other`

) and is used by the `<=`

operator. Read moresource§### impl Sub for Bits

### impl Sub for Bits

source§### impl SubAssign for Bits

### impl SubAssign for Bits

source§#### fn sub_assign(&mut self, other: Self)

#### fn sub_assign(&mut self, other: Self)

The intersection of a source flags value with the complement of a target flags value (`&!`

).

This method is not equivalent to `self & !other`

when `other`

has unknown bits set.
`difference`

won’t truncate `other`

, but the `!`

operator will.

### impl Copy for Bits

### impl Eq for Bits

### impl IntoBytes for Bits

### impl StructuralPartialEq for Bits

## Auto Trait Implementations§

### impl Freeze for Bits

### impl RefUnwindSafe for Bits

### impl Send for Bits

### impl Sync for Bits

### impl Unpin for Bits

### impl UnwindSafe for Bits

## Blanket Implementations§

source§### impl<T> BorrowMut<T> for Twhere
T: ?Sized,

### impl<T> BorrowMut<T> for Twhere
T: ?Sized,

source§#### fn borrow_mut(&mut self) -> &mut T

#### fn borrow_mut(&mut self) -> &mut T

source§### impl<T> CloneToUninit for Twhere
T: Clone,

### impl<T> CloneToUninit for Twhere
T: Clone,

source§#### default unsafe fn clone_to_uninit(&self, dst: *mut T)

#### default unsafe fn clone_to_uninit(&self, dst: *mut T)

`clone_to_uninit`

)source§### impl<T> CloneToUninit for Twhere
T: Copy,

### impl<T> CloneToUninit for Twhere
T: Copy,

source§#### unsafe fn clone_to_uninit(&self, dst: *mut T)

#### unsafe fn clone_to_uninit(&self, dst: *mut T)

`clone_to_uninit`

)