#[repr(transparent)]pub struct DupFlags(_);Expand description
O_* constants for use with dup2.
Implementations§
source§impl DupFlags
 
impl DupFlags
sourcepub const fn from_bits(bits: c_uint) -> Option<Self>
 
pub const fn from_bits(bits: c_uint) -> Option<Self>
Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.
sourcepub const fn from_bits_truncate(bits: c_uint) -> Self
 
pub const fn from_bits_truncate(bits: c_uint) -> Self
Convert from underlying bit representation, dropping any bits that do not correspond to flags.
sourcepub const fn from_bits_retain(bits: c_uint) -> Self
 
pub const fn from_bits_retain(bits: c_uint) -> Self
Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).
sourcepub fn from_name(name: &str) -> Option<Self>
 
pub fn from_name(name: &str) -> Option<Self>
Get the value for a flag from its stringified name.
Names are case-sensitive, so must correspond exactly to the identifier given to the flag.
sourcepub const fn intersects(&self, other: Self) -> bool
 
pub const fn intersects(&self, other: Self) -> bool
Returns true if there are flags common to both self and other.
sourcepub const fn contains(&self, other: Self) -> bool
 
pub const fn contains(&self, other: Self) -> bool
Returns true if all of the flags in other are contained within self.
sourcepub fn insert(&mut self, other: Self)
 
pub fn insert(&mut self, other: Self)
Inserts the specified flags in-place.
This method is equivalent to union.
sourcepub fn remove(&mut self, other: Self)
 
pub fn remove(&mut self, other: Self)
Removes the specified flags in-place.
This method is equivalent to difference.
sourcepub fn toggle(&mut self, other: Self)
 
pub fn toggle(&mut self, other: Self)
Toggles the specified flags in-place.
This method is equivalent to symmetric_difference.
sourcepub fn set(&mut self, other: Self, value: bool)
 
pub fn set(&mut self, other: Self, value: bool)
Inserts or removes the specified flags depending on the passed value.
sourcepub const fn intersection(self, other: Self) -> Self
 
pub const fn intersection(self, other: Self) -> Self
Returns the intersection between the flags in self and
other.
Calculating self bitwise and (&) other, including
any bits that don’t correspond to a defined flag.
sourcepub const fn union(self, other: Self) -> Self
 
pub const fn union(self, other: Self) -> Self
Returns the union of between the flags in self and other.
Calculates self bitwise or (|) other, including
any bits that don’t correspond to a defined flag.
sourcepub const fn difference(self, other: Self) -> Self
 
pub const fn difference(self, other: Self) -> Self
Returns the difference between the flags in self and other.
Calculates self bitwise and (&!) the bitwise negation of other,
including any bits that don’t correspond to a defined flag.
This method is not equivalent to a & !b when there are bits set that
don’t correspond to a defined flag. The ! operator will unset any
bits that don’t correspond to a flag, so they’ll always be unset by a &! b,
but respected by a.difference(b).
sourcepub const fn symmetric_difference(self, other: Self) -> Self
 
pub const fn symmetric_difference(self, other: Self) -> Self
Returns the symmetric difference between the flags
in self and other.
Calculates self bitwise exclusive or (^) other,
including any bits that don’t correspond to a defined flag.
sourcepub const fn complement(self) -> Self
 
pub const fn complement(self) -> Self
Returns the complement of this set of flags.
Calculates the bitwise negation (!) of self,
unsetting any bits that don’t correspond to a defined flag.
Trait Implementations§
source§impl BitAndAssign<DupFlags> for DupFlags
 
impl BitAndAssign<DupFlags> for DupFlags
source§fn bitand_assign(&mut self, other: Self)
 
fn bitand_assign(&mut self, other: Self)
Disables all flags disabled in the set.
source§impl BitOrAssign<DupFlags> for DupFlags
 
impl BitOrAssign<DupFlags> for DupFlags
source§fn bitor_assign(&mut self, other: Self)
 
fn bitor_assign(&mut self, other: Self)
Adds the set of flags.
source§impl BitXorAssign<DupFlags> for DupFlags
 
impl BitXorAssign<DupFlags> for DupFlags
source§fn bitxor_assign(&mut self, other: Self)
 
fn bitxor_assign(&mut self, other: Self)
Toggles the set of flags.
source§impl Extend<DupFlags> for DupFlags
 
impl Extend<DupFlags> for DupFlags
source§fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)
 
fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)
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 DupFlags
 
impl Flags for DupFlags
source§fn from_bits_retain(bits: c_uint) -> DupFlags
 
fn from_bits_retain(bits: c_uint) -> DupFlags
source§fn from_bits(bits: Self::Bits) -> Option<Self>
 
fn from_bits(bits: Self::Bits) -> Option<Self>
source§fn from_bits_truncate(bits: Self::Bits) -> Self
 
fn from_bits_truncate(bits: Self::Bits) -> 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,
true if there are flags common to both self and other.source§fn contains(&self, other: Self) -> boolwhere
    Self: Sized,
 
fn contains(&self, other: Self) -> boolwhere Self: Sized,
true if all of the flags in other are contained within self.source§fn insert(&mut self, other: Self)where
    Self: Sized,
 
fn insert(&mut self, other: Self)where Self: Sized,
source§fn remove(&mut self, other: Self)where
    Self: Sized,
 
fn remove(&mut self, other: Self)where Self: Sized,
source§fn toggle(&mut self, other: Self)where
    Self: Sized,
 
fn toggle(&mut self, other: Self)where Self: Sized,
source§fn set(&mut self, other: Self, value: bool)where
    Self: Sized,
 
fn set(&mut self, other: Self, value: bool)where Self: Sized,
source§fn intersection(self, other: Self) -> Self
 
fn intersection(self, other: Self) -> Self
self and other.source§fn difference(self, other: Self) -> Self
 
fn difference(self, other: Self) -> Self
self and other.source§fn symmetric_difference(self, other: Self) -> Self
 
fn symmetric_difference(self, other: Self) -> Self
self and other.source§fn complement(self) -> Self
 
fn complement(self) -> Self
source§impl FromIterator<DupFlags> for DupFlags
 
impl FromIterator<DupFlags> for DupFlags
source§fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self
 
fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self
source§impl IntoIterator for DupFlags
 
impl IntoIterator for DupFlags
source§impl PartialEq<DupFlags> for DupFlags
 
impl PartialEq<DupFlags> for DupFlags
source§impl SubAssign<DupFlags> for DupFlags
 
impl SubAssign<DupFlags> for DupFlags
source§fn sub_assign(&mut self, other: Self)
 
fn sub_assign(&mut self, other: Self)
Disables all flags enabled in the set.