Struct Mode
#[repr(transparent)]
pub struct Mode(/* private field */);
"File mode / permissions" flags.
Implementations
impl Mode
const S_IRWXU: Self = _;Read, write and execute for owner.
const S_IRUSR: Self = _;Read for owner.
const S_IWUSR: Self = _;Write for owner.
const S_IXUSR: Self = _;Execute for owner.
const S_IRWXG: Self = _;Read write and execute for group.
const S_IRGRP: Self = _;Read for group.
const S_IWGRP: Self = _;Write for group.
const S_IXGRP: Self = _;Execute for group.
const S_IRWXO: Self = _;Read, write and execute for other.
const S_IROTH: Self = _;Read for other.
const S_IWOTH: Self = _;Write for other.
const S_IXOTH: Self = _;Execute for other.
const S_ISUID: Self = _;Set user id on execution.
const S_ISGID: Self = _;Set group id on execution.
const S_ISVTX: Self = _;
impl Mode
const fn empty() -> SelfGet a flags value with all bits unset.
const fn all() -> SelfGet a flags value with all known bits set.
const fn bits(&self) -> mode_tGet the underlying bits value.
The returned value is exactly the bits set in this flags value.
const fn from_bits(bits: mode_t) -> Option<Self>Convert from a bits value.
This method will return
Noneif any unknown bits are set.const fn from_bits_truncate(bits: mode_t) -> SelfConvert from a bits value, unsetting any unknown bits.
const fn from_bits_retain(bits: mode_t) -> SelfConvert from a bits value exactly.
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
Noneifnameis empty or doesn't correspond to any named flag.const fn is_empty(&self) -> boolWhether all bits in
selfare unset.const fn is_all(&self) -> boolWhether all known bits in this flags value are set.
const fn intersects(&self, other: Self) -> boolWhether any set bits in
otherare also set inself.const fn contains(&self, other: Self) -> boolWhether all set bits in
otherare also set inself.fn insert(&mut self, other: Self)The bitwise or (
|) of the bits inselfandother.fn remove(&mut self, other: Self)The intersection of
selfwith the complement ofother(&!).This method is not equivalent to
self & !otherwhenotherhas unknown bits set.removewon't truncateother, but the!operator will.fn toggle(&mut self, other: Self)The bitwise exclusive-or (
^) of the bits inselfandother.fn set(&mut self, other: Self, value: bool)Call
insertwhenvalueistrueorremovewhenvalueisfalse.const fn intersection(self, other: Self) -> SelfThe bitwise and (
&) of the bits inselfandother.const fn union(self, other: Self) -> SelfThe bitwise or (
|) of the bits inselfandother.const fn difference(self, other: Self) -> SelfThe intersection of
selfwith the complement ofother(&!).This method is not equivalent to
self & !otherwhenotherhas unknown bits set.differencewon't truncateother, but the!operator will.const fn symmetric_difference(self, other: Self) -> SelfThe bitwise exclusive-or (
^) of the bits inselfandother.const fn complement(self) -> SelfThe bitwise negation (
!) of the bits inself, truncating the result.
impl Mode
const fn iter(&self) -> Iter<Mode>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.
const fn iter_names(&self) -> IterNames<Mode>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
impl Binary for Mode
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl BitAnd for Mode
type Output = Mode;fn bitand(self, other: Self) -> SelfThe bitwise and (
&) of the bits inselfandother.
impl BitAndAssign for Mode
fn bitand_assign(&mut self, other: Self)The bitwise and (
&) of the bits inselfandother.
impl BitOr for Mode
type Output = Mode;fn bitor(self, other: Mode) -> SelfThe bitwise or (
|) of the bits inselfandother.
impl BitOrAssign for Mode
fn bitor_assign(&mut self, other: Self)The bitwise or (
|) of the bits inselfandother.
impl BitXor for Mode
type Output = Mode;fn bitxor(self, other: Self) -> SelfThe bitwise exclusive-or (
^) of the bits inselfandother.
impl BitXorAssign for Mode
fn bitxor_assign(&mut self, other: Self)The bitwise exclusive-or (
^) of the bits inselfandother.
impl Clone for Mode
fn clone(&self) -> Self
impl Copy for Mode
impl Debug for Mode
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl Eq for Mode
impl Extend<Mode> for Mode
fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)The bitwise or (
|) of the bits in each flags value.
impl Flags for Mode
const FLAGS: &'static [Flag<Mode>] = _;type Bits = u32;fn bits(&self) -> mode_tfn from_bits_retain(bits: mode_t) -> Modefn all_named() -> Mode
impl FromIterator<Mode> for Mode
fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> SelfThe bitwise or (
|) of the bits in each flags value.
impl Hash for Mode
fn hash<__H: Hasher>(&self, state: &mut __H)
impl IntoIterator for Mode
type Item = Mode;type IntoIter = Iter<Mode>;fn into_iter(self) -> Self::IntoIter
impl LowerHex for Mode
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl Not for Mode
type Output = Mode;fn not(self) -> SelfThe bitwise negation (
!) of the bits inself, truncating the result.
impl Octal for Mode
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl Ord for Mode
fn cmp(&self, other: &Self) -> Ordering
impl PartialEq for Mode
fn eq(&self, other: &Self) -> bool
impl PartialOrd for Mode
fn partial_cmp(&self, other: &Self) -> Option<Ordering>
impl PublicFlags for Mode
type Primitive = u32;type Internal = InternalBitFlags;
impl StructuralPartialEq for Mode
impl Sub for Mode
type Output = Mode;fn sub(self, other: Self) -> SelfThe intersection of
selfwith the complement ofother(&!).This method is not equivalent to
self & !otherwhenotherhas unknown bits set.differencewon't truncateother, but the!operator will.
impl SubAssign for Mode
fn sub_assign(&mut self, other: Self)The intersection of
selfwith the complement ofother(&!).This method is not equivalent to
self & !otherwhenotherhas unknown bits set.differencewon't truncateother, but the!operator will.
impl UpperHex for Mode
fn fmt(&self, f: &mut Formatter<'_>) -> Result
Auto Trait Implementations
impl Freeze for Mode
impl RefUnwindSafe for Mode
impl Send for Mode
impl Sync for Mode
impl Unpin for Mode
impl UnsafeUnpin for Mode
impl UnwindSafe for Mode
Blanket Implementations
impl<T> Any for Mode
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for Mode
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for Mode
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> CloneToUninit for Mode
where
T: Clone,
unsafe fn clone_to_uninit(&self, dest: *mut u8)
impl<T> From<T> for Mode
fn from(t: T) -> TReturns the argument unchanged.
impl<T> ToOwned for Mode
where
T: Clone,
type Owned = T;fn to_owned(&self) -> Tfn clone_into(&self, target: &mut T)
impl<T, U> Into<U> for Mode
where
U: From<T>,
fn into(self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom<U> for Mode
where
U: Into<T>,
type Error = never;fn try_from(value: U) -> Result<T, never>
impl<T, U> TryInto<U> for Mode
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>