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.

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.

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() -> Self

Get a flags value with all bits unset.

const fn all() -> Self

Get a flags value with all known bits set.

const fn bits(&self) -> c_ulonglong

Get 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 None if any unknown bits are set.

const fn from_bits_truncate(bits: c_ulonglong) -> Self

Convert from a bits value, unsetting any unknown bits.

const fn from_bits_retain(bits: c_ulonglong) -> Self

Convert 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 None if name is empty or doesn't correspond to any named flag.

const fn is_empty(&self) -> bool

Whether all bits in self are unset.

const fn is_all(&self) -> bool

Whether all known bits in this flags value are set.

const fn intersects(&self, other: Self) -> bool

Whether any set bits in other are also set in self.

const fn contains(&self, other: Self) -> bool

Whether all set bits in other are also set in self.

fn insert(&mut self, other: Self)

The bitwise or (|) of the bits in self and other.

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.

fn toggle(&mut self, other: Self)

The bitwise exclusive-or (^) of the bits in self and other.

fn set(&mut self, other: Self, value: bool)

Call insert when value is true or remove when value is false.

const fn intersection(self, other: Self) -> Self

The bitwise and (&) of the bits in self and other.

const fn union(self, other: Self) -> Self

The bitwise or (|) of the bits in self and other.

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.

const fn symmetric_difference(self, other: Self) -> Self

The bitwise exclusive-or (^) of the bits in self and other.

const fn complement(self) -> Self

The bitwise negation (!) of the bits in self, 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) -> Self

The bitwise and (&) of the bits in self and other.

impl BitAndAssign for ResolveFlag

fn bitand_assign(&mut self, other: Self)

The bitwise and (&) of the bits in self and other.

impl BitOr for ResolveFlag

type Output = ResolveFlag;
fn bitor(self, other: ResolveFlag) -> Self

The bitwise or (|) of the bits in self and other.

impl BitOrAssign for ResolveFlag

fn bitor_assign(&mut self, other: Self)

The bitwise or (|) of the bits in self and other.

impl BitXor for ResolveFlag

type Output = ResolveFlag;
fn bitxor(self, other: Self) -> Self

The bitwise exclusive-or (^) of the bits in self and other.

impl BitXorAssign for ResolveFlag

fn bitxor_assign(&mut self, other: Self)

The bitwise exclusive-or (^) of the bits in self and other.

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_ulonglong
fn from_bits_retain(bits: c_ulonglong) -> ResolveFlag
fn all_named() -> ResolveFlag

impl FromIterator<ResolveFlag> for ResolveFlag

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

The 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) -> Self

The bitwise negation (!) of the bits in self, 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) -> 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.

impl SubAssign for ResolveFlag

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.

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) -> T

Returns the argument unchanged.

impl<T> ToOwned for ResolveFlag where T: Clone,

type Owned = T;
fn to_owned(&self) -> T
fn clone_into(&self, target: &mut T)

impl<T, U> Into<U> for ResolveFlag where U: From<T>,

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses 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>