pub struct FeatureType(/* private fields */);Expand description
A bitfield describing some properties of a feature.
Documentation is taken from https://drive.google.com/file/d/1ULmw9uJL8b8iwwUo5xjSS9F5Zvno-86y/view.
Implementations§
Source§impl FeatureType
impl FeatureType
Sourcepub const OBSOLETE: Self
pub const OBSOLETE: Self
An obsolete feature is a feature that has been replaced by a newer one, but is advertised in order for older SWs to still be able to support the feature (in case the old SW does not know yet the newer one).
Sourcepub const HIDDEN: Self
pub const HIDDEN: Self
A SW hidden feature is a feature that should not be known/managed/used by end user configuration SW. The host should ignore this type of features.
Sourcepub const ENGINEERING: Self
pub const ENGINEERING: Self
A hidden feature that has been disabled for user software. Used for internal testing and manufacturing.
Sourcepub const MANUFACTURING_DEACTIVATABLE: Self
pub const MANUFACTURING_DEACTIVATABLE: Self
A manufacturing feature that can be permanently deactivated. It is usually also hidden and engineering.
This flag was added in feature version 2 and is never set by older versions.
Sourcepub const COMPLIANCE_DEACTIVATABLE: Self
pub const COMPLIANCE_DEACTIVATABLE: Self
A compliance feature that can be permanently deactivated. It is usually also hidden and engineering.
This flag was added in feature version 2 and is never set by older versions.
Source§impl FeatureType
impl FeatureType
Sourcepub const fn bits(&self) -> u8
pub const fn bits(&self) -> u8
Get the underlying bits value.
The returned value is exactly the bits set in this flags value.
Sourcepub const fn from_bits(bits: u8) -> Option<Self>
pub const fn from_bits(bits: u8) -> Option<Self>
Convert from a bits value.
This method will return None if any unknown bits are set.
Sourcepub const fn from_bits_truncate(bits: u8) -> Self
pub const fn from_bits_truncate(bits: u8) -> Self
Convert from a bits value, unsetting any unknown bits.
Sourcepub const fn from_bits_retain(bits: u8) -> Self
pub const fn from_bits_retain(bits: u8) -> Self
Convert from a bits value exactly.
Sourcepub 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.
Sourcepub const fn intersects(&self, other: Self) -> bool
pub const fn intersects(&self, other: Self) -> bool
Whether any set bits in other are also set in self.
Sourcepub const fn contains(&self, other: Self) -> bool
pub const fn contains(&self, other: Self) -> bool
Whether all set bits in other are also set in self.
Sourcepub fn remove(&mut self, other: Self)
pub fn remove(&mut self, other: Self)
The intersection of self with the complement of other (&!).
This method is not equivalent to self & !other when other has unknown bits set.
remove won’t truncate other, but the ! operator will.
Sourcepub fn toggle(&mut self, other: Self)
pub fn toggle(&mut self, other: Self)
The bitwise exclusive-or (^) of the bits in self and other.
Sourcepub 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.
Sourcepub const fn intersection(self, other: Self) -> Self
pub const fn intersection(self, other: Self) -> Self
The bitwise and (&) of the bits in self and other.
Sourcepub const fn union(self, other: Self) -> Self
pub const fn union(self, other: Self) -> Self
The bitwise or (|) of the bits in self and other.
Sourcepub const fn difference(self, other: Self) -> Self
pub const fn difference(self, other: Self) -> Self
The intersection of self with the complement of other (&!).
This method is not equivalent to self & !other when other has unknown bits set.
difference won’t truncate other, but the ! operator will.
Sourcepub 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 self and other.
Sourcepub const fn complement(self) -> Self
pub const fn complement(self) -> Self
The bitwise negation (!) of the bits in self, truncating the result.
Source§impl FeatureType
impl FeatureType
Sourcepub const fn iter(&self) -> Iter<FeatureType> ⓘ
pub const fn iter(&self) -> Iter<FeatureType> ⓘ
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.
Sourcepub const fn iter_names(&self) -> IterNames<FeatureType> ⓘ
pub const fn iter_names(&self) -> IterNames<FeatureType> ⓘ
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 Binary for FeatureType
impl Binary for FeatureType
Source§impl BitAnd for FeatureType
impl BitAnd for FeatureType
Source§impl BitAndAssign for FeatureType
impl BitAndAssign for FeatureType
Source§fn bitand_assign(&mut self, other: Self)
fn bitand_assign(&mut self, other: Self)
The bitwise and (&) of the bits in self and other.
Source§impl BitOr for FeatureType
impl BitOr for FeatureType
Source§fn bitor(self, other: FeatureType) -> Self
fn bitor(self, other: FeatureType) -> Self
The bitwise or (|) of the bits in self and other.
Source§type Output = FeatureType
type Output = FeatureType
| operator.Source§impl BitOrAssign for FeatureType
impl BitOrAssign for FeatureType
Source§fn bitor_assign(&mut self, other: Self)
fn bitor_assign(&mut self, other: Self)
The bitwise or (|) of the bits in self and other.
Source§impl BitXor for FeatureType
impl BitXor for FeatureType
Source§impl BitXorAssign for FeatureType
impl BitXorAssign for FeatureType
Source§fn bitxor_assign(&mut self, other: Self)
fn bitxor_assign(&mut self, other: Self)
The bitwise exclusive-or (^) of the bits in self and other.
Source§impl Clone for FeatureType
impl Clone for FeatureType
Source§fn clone(&self) -> FeatureType
fn clone(&self) -> FeatureType
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for FeatureType
Source§impl Debug for FeatureType
impl Debug for FeatureType
impl Eq for FeatureType
Source§impl Extend<FeatureType> for FeatureType
impl Extend<FeatureType> for FeatureType
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 FeatureType
impl Flags for FeatureType
Source§const FLAGS: &'static [Flag<FeatureType>]
const FLAGS: &'static [Flag<FeatureType>]
Source§fn from_bits_retain(bits: u8) -> FeatureType
fn from_bits_retain(bits: u8) -> FeatureType
Source§fn all_named() -> FeatureType
fn all_named() -> FeatureType
Source§fn known_bits(&self) -> Self::Bits
fn known_bits(&self) -> Self::Bits
Source§fn unknown_bits(&self) -> Self::Bits
fn unknown_bits(&self) -> Self::Bits
Source§fn contains_unknown_bits(&self) -> bool
fn contains_unknown_bits(&self) -> bool
true if any unknown bits are set.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 iter_defined_names() -> IterDefinedNames<Self> ⓘ
fn iter_defined_names() -> IterDefinedNames<Self> ⓘ
Self::FLAGS.Source§fn iter_equal_names(&self) -> IterEqualNames<Self> ⓘ
fn iter_equal_names(&self) -> IterEqualNames<Self> ⓘ
Source§fn intersects(&self, other: Self) -> boolwhere
Self: Sized,
fn intersects(&self, other: Self) -> boolwhere
Self: Sized,
other are also set in self.Source§fn contains(&self, other: Self) -> boolwhere
Self: Sized,
fn contains(&self, other: Self) -> boolwhere
Self: Sized,
other are also set in self.Source§fn insert(&mut self, other: Self)where
Self: Sized,
fn insert(&mut self, other: Self)where
Self: Sized,
|) of the bits in self and other.Source§fn toggle(&mut self, other: Self)where
Self: Sized,
fn toggle(&mut self, other: Self)where
Self: Sized,
^) of the bits in self and other.Source§fn intersection(self, other: Self) -> Self
fn intersection(self, other: Self) -> Self
&) of the bits in self and other.Source§fn difference(self, other: Self) -> Self
fn difference(self, other: Self) -> Self
Source§fn symmetric_difference(self, other: Self) -> Self
fn symmetric_difference(self, other: Self) -> Self
^) of the bits in self and other.Source§fn complement(self) -> Self
fn complement(self) -> Self
!) of the bits in self, truncating the result.Source§impl FromIterator<FeatureType> for FeatureType
impl FromIterator<FeatureType> for FeatureType
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 Hash for FeatureType
impl Hash for FeatureType
Source§impl IntoIterator for FeatureType
impl IntoIterator for FeatureType
Source§impl LowerHex for FeatureType
impl LowerHex for FeatureType
Source§impl Not for FeatureType
impl Not for FeatureType
Source§impl Octal for FeatureType
impl Octal for FeatureType
Source§impl PartialEq for FeatureType
impl PartialEq for FeatureType
Source§impl PublicFlags for FeatureType
impl PublicFlags for FeatureType
impl StructuralPartialEq for FeatureType
Source§impl Sub for FeatureType
impl Sub for FeatureType
Source§fn sub(self, other: Self) -> Self
fn sub(self, other: Self) -> Self
The intersection of self with the complement of other (&!).
This method is not equivalent to self & !other when other has unknown bits set.
difference won’t truncate other, but the ! operator will.
Source§type Output = FeatureType
type Output = FeatureType
- operator.Source§impl SubAssign for FeatureType
impl SubAssign for FeatureType
Source§fn sub_assign(&mut self, other: Self)
fn sub_assign(&mut self, other: Self)
The intersection of self with the complement of other (&!).
This method is not equivalent to self & !other when other has unknown bits set.
difference won’t truncate other, but the ! operator will.