pub struct ResolveFlag(/* private fields */);
Expand description
Path resolution flags.
See path resolution(7) for details of the resolution process.
Implementations§
source§impl ResolveFlag
impl ResolveFlag
sourcepub const RESOLVE_BENEATH: Self = _
pub const RESOLVE_BENEATH: Self = _
Do not permit the path resolution to succeed if any component of the resolution is not a descendant of the directory indicated by dirfd. This causes absolute symbolic links (and absolute values of pathname) to be rejected.
sourcepub const RESOLVE_IN_ROOT: Self = _
pub const RESOLVE_IN_ROOT: Self = _
Treat the directory referred to by dirfd as the root directory while resolving pathname.
sourcepub const RESOLVE_NO_MAGICLINKS: Self = _
pub const RESOLVE_NO_MAGICLINKS: Self = _
Disallow all magic-link resolution during path resolution. Magic
links are symbolic link-like objects that are most notably found
in proc(5); examples include /proc/[pid]/exe
and /proc/[pid]/fd/*
.
See symlink(7) for more details.
sourcepub const RESOLVE_NO_SYMLINKS: Self = _
pub const RESOLVE_NO_SYMLINKS: Self = _
Disallow resolution of symbolic links during path resolution. This option implies RESOLVE_NO_MAGICLINKS.
sourcepub const RESOLVE_NO_XDEV: Self = _
pub const RESOLVE_NO_XDEV: Self = _
Disallow traversal of mount points during path resolution (including all bind mounts).
source§impl ResolveFlag
impl ResolveFlag
sourcepub const fn bits(&self) -> c_ulonglong
pub const fn bits(&self) -> c_ulonglong
Get the underlying bits value.
The returned value is exactly the bits set in this flags value.
sourcepub const fn from_bits(bits: c_ulonglong) -> Option<Self>
pub const fn from_bits(bits: c_ulonglong) -> 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: c_ulonglong) -> Self
pub const fn from_bits_truncate(bits: c_ulonglong) -> Self
Convert from a bits value, unsetting any unknown bits.
sourcepub const fn from_bits_retain(bits: c_ulonglong) -> Self
pub const fn from_bits_retain(bits: c_ulonglong) -> 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 a source flags value are also set in a target flags value.
sourcepub 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.
sourcepub 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.
sourcepub fn toggle(&mut self, other: Self)
pub fn toggle(&mut self, other: Self)
The bitwise exclusive-or (^
) of the bits in two flags values.
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 two flags values.
sourcepub 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.
sourcepub 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.
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 two flags values.
sourcepub 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 ResolveFlag
impl ResolveFlag
sourcepub const fn iter(&self) -> Iter<ResolveFlag>
pub const fn iter(&self) -> Iter<ResolveFlag>
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<ResolveFlag>
pub const fn iter_names(&self) -> IterNames<ResolveFlag>
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 ResolveFlag
impl Binary for ResolveFlag
source§impl BitAnd for ResolveFlag
impl BitAnd for ResolveFlag
source§impl BitAndAssign for ResolveFlag
impl BitAndAssign for ResolveFlag
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 BitOr for ResolveFlag
impl BitOr for ResolveFlag
source§fn bitor(self, other: ResolveFlag) -> Self
fn bitor(self, other: ResolveFlag) -> Self
The bitwise or (|
) of the bits in two flags values.
source§type Output = ResolveFlag
type Output = ResolveFlag
|
operator.source§impl BitOrAssign for ResolveFlag
impl BitOrAssign for ResolveFlag
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 BitXor for ResolveFlag
impl BitXor for ResolveFlag
source§impl BitXorAssign for ResolveFlag
impl BitXorAssign for ResolveFlag
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 Clone for ResolveFlag
impl Clone for ResolveFlag
source§fn clone(&self) -> ResolveFlag
fn clone(&self) -> ResolveFlag
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ResolveFlag
impl Debug for ResolveFlag
source§impl Extend<ResolveFlag> for ResolveFlag
impl Extend<ResolveFlag> for ResolveFlag
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 ResolveFlag
impl Flags for ResolveFlag
source§const FLAGS: &'static [Flag<ResolveFlag>] = _
const FLAGS: &'static [Flag<ResolveFlag>] = _
source§fn bits(&self) -> c_ulonglong
fn bits(&self) -> c_ulonglong
source§fn from_bits_retain(bits: c_ulonglong) -> ResolveFlag
fn from_bits_retain(bits: c_ulonglong) -> ResolveFlag
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 FromIterator<ResolveFlag> for ResolveFlag
impl FromIterator<ResolveFlag> for ResolveFlag
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 ResolveFlag
impl Hash for ResolveFlag
source§impl IntoIterator for ResolveFlag
impl IntoIterator for ResolveFlag
source§impl LowerHex for ResolveFlag
impl LowerHex for ResolveFlag
source§impl Not for ResolveFlag
impl Not for ResolveFlag
source§impl Octal for ResolveFlag
impl Octal for ResolveFlag
source§impl Ord for ResolveFlag
impl Ord for ResolveFlag
source§fn cmp(&self, other: &ResolveFlag) -> Ordering
fn cmp(&self, other: &ResolveFlag) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl PartialEq for ResolveFlag
impl PartialEq for ResolveFlag
source§impl PartialOrd for ResolveFlag
impl PartialOrd for ResolveFlag
source§impl PublicFlags for ResolveFlag
impl PublicFlags for ResolveFlag
source§impl Sub for ResolveFlag
impl Sub for ResolveFlag
source§fn sub(self, other: Self) -> Self
fn sub(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§type Output = ResolveFlag
type Output = ResolveFlag
-
operator.source§impl SubAssign for ResolveFlag
impl SubAssign for ResolveFlag
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.
source§impl UpperHex for ResolveFlag
impl UpperHex for ResolveFlag
impl Copy for ResolveFlag
impl Eq for ResolveFlag
impl StructuralPartialEq for ResolveFlag
Auto Trait Implementations§
impl Freeze for ResolveFlag
impl RefUnwindSafe for ResolveFlag
impl Send for ResolveFlag
impl Sync for ResolveFlag
impl Unpin for ResolveFlag
impl UnwindSafe for ResolveFlag
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)