Struct ResolveFlag
#[repr(transparent)]
pub struct ResolveFlag(/* private field */);
Path resolution flags.
See path resolution(7) for details of the resolution process.
Implementations
impl ResolveFlag
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.
const RESOLVE_IN_ROOT: Self = _;Treat the directory referred to by dirfd as the root directory while resolving pathname.
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]/exeand/proc/[pid]/fd/*.See symlink(7) for more details.
const RESOLVE_NO_SYMLINKS: Self = _;Disallow resolution of symbolic links during path resolution. This option implies RESOLVE_NO_MAGICLINKS.
const RESOLVE_NO_XDEV: Self = _;Disallow traversal of mount points during path resolution (including all bind mounts).
impl ResolveFlag
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) -> c_ulonglongGet the underlying bits value.
The returned value is exactly the bits set in this flags value.
const fn from_bits(bits: c_ulonglong) -> Option<Self>Convert from a bits value.
This method will return
Noneif any unknown bits are set.const fn from_bits_truncate(bits: c_ulonglong) -> SelfConvert from a bits value, unsetting any unknown bits.
const fn from_bits_retain(bits: c_ulonglong) -> 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 ResolveFlag
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.
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
impl Binary for ResolveFlag
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl BitAnd for ResolveFlag
type Output = ResolveFlag;fn bitand(self, other: Self) -> SelfThe bitwise and (
&) of the bits inselfandother.
impl BitAndAssign for ResolveFlag
fn bitand_assign(&mut self, other: Self)The bitwise and (
&) of the bits inselfandother.
impl BitOr for ResolveFlag
type Output = ResolveFlag;fn bitor(self, other: ResolveFlag) -> SelfThe bitwise or (
|) of the bits inselfandother.
impl BitOrAssign for ResolveFlag
fn bitor_assign(&mut self, other: Self)The bitwise or (
|) of the bits inselfandother.
impl BitXor for ResolveFlag
type Output = ResolveFlag;fn bitxor(self, other: Self) -> SelfThe bitwise exclusive-or (
^) of the bits inselfandother.
impl BitXorAssign for ResolveFlag
fn bitxor_assign(&mut self, other: Self)The bitwise exclusive-or (
^) of the bits inselfandother.
impl Clone for ResolveFlag
fn clone(&self) -> Self
impl Copy for ResolveFlag
impl Debug for ResolveFlag
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl Eq for ResolveFlag
impl Extend<ResolveFlag> for ResolveFlag
fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)The bitwise or (
|) of the bits in each flags value.
impl Flags for ResolveFlag
const FLAGS: &'static [Flag<ResolveFlag>] = _;type Bits = u64;fn bits(&self) -> c_ulonglongfn from_bits_retain(bits: c_ulonglong) -> ResolveFlagfn all_named() -> ResolveFlag
impl FromIterator<ResolveFlag> for ResolveFlag
fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> SelfThe bitwise or (
|) of the bits in each flags value.
impl Hash for ResolveFlag
fn hash<__H: Hasher>(&self, state: &mut __H)
impl IntoIterator for ResolveFlag
type Item = ResolveFlag;type IntoIter = Iter<ResolveFlag>;fn into_iter(self) -> Self::IntoIter
impl LowerHex for ResolveFlag
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl Not for ResolveFlag
type Output = ResolveFlag;fn not(self) -> SelfThe bitwise negation (
!) of the bits inself, truncating the result.
impl Octal for ResolveFlag
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl Ord for ResolveFlag
fn cmp(&self, other: &Self) -> Ordering
impl PartialEq for ResolveFlag
fn eq(&self, other: &Self) -> bool
impl PartialOrd for ResolveFlag
fn partial_cmp(&self, other: &Self) -> Option<Ordering>
impl PublicFlags for ResolveFlag
type Primitive = u64;type Internal = InternalBitFlags;
impl StructuralPartialEq for ResolveFlag
impl Sub for ResolveFlag
type Output = ResolveFlag;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 ResolveFlag
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 ResolveFlag
fn fmt(&self, f: &mut Formatter<'_>) -> Result
Auto Trait Implementations
impl Freeze for ResolveFlag
impl RefUnwindSafe for ResolveFlag
impl Send for ResolveFlag
impl Sync for ResolveFlag
impl Unpin for ResolveFlag
impl UnsafeUnpin for ResolveFlag
impl UnwindSafe for ResolveFlag
Blanket Implementations
impl<T> Any for ResolveFlag
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for ResolveFlag
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for ResolveFlag
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> CloneToUninit for ResolveFlag
where
T: Clone,
unsafe fn clone_to_uninit(&self, dest: *mut u8)
impl<T> From<T> for ResolveFlag
fn from(t: T) -> TReturns the argument unchanged.
impl<T> ToOwned for ResolveFlag
where
T: Clone,
type Owned = T;fn to_owned(&self) -> Tfn clone_into(&self, target: &mut T)
impl<T, U> Into<U> for ResolveFlag
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 ResolveFlag
where
U: Into<T>,
type Error = never;fn try_from(value: U) -> Result<T, never>
impl<T, U> TryInto<U> for ResolveFlag
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>