Struct MFdFlags

#[repr(transparent)]
pub struct MFdFlags(/* private field */);

Options that change the behavior of memfd_create.

Implementations

impl MFdFlags

const MFD_CLOEXEC: Self = _;

Set the close-on-exec (FD_CLOEXEC) flag on the new file descriptor.

By default, the new file descriptor is set to remain open across an execve (the FD_CLOEXEC flag is initially disabled). This flag can be used to change this default. The file offset is set to the beginning of the file (see lseek).

See also the description of the O_CLOEXEC flag in open(2).

const MFD_ALLOW_SEALING: Self = _;

Allow sealing operations on this file.

See also the file sealing notes given in memfd_create(2).

const MFD_HUGETLB: Self = _;

Anonymous file will be created using huge pages. It should be safe now to combine with MFD_ALLOW_SEALING too. However, despite its presence, on FreeBSD it is unimplemented for now (ENOSYS).

See also the hugetlb filesystem in memfd_create(2).

const MFD_HUGE_1MB: Self = _;

Following are to be used with MFD_HUGETLB, indicating the desired hugetlb size.

See also the hugetlb filesystem in memfd_create(2).

const MFD_HUGE_2MB: Self = _;

hugetlb size of 2MB.

const MFD_HUGE_8MB: Self = _;

hugetlb size of 8MB.

const MFD_HUGE_16MB: Self = _;

hugetlb size of 16MB.

const MFD_HUGE_32MB: Self = _;

hugetlb size of 32MB.

const MFD_HUGE_256MB: Self = _;

hugetlb size of 256MB.

const MFD_HUGE_512MB: Self = _;

hugetlb size of 512MB.

const MFD_HUGE_1GB: Self = _;

hugetlb size of 1GB.

const MFD_HUGE_2GB: Self = _;

hugetlb size of 2GB.

const MFD_HUGE_16GB: Self = _;

hugetlb size of 16GB.

impl MFdFlags

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_uint

Get the underlying bits value.

The returned value is exactly the bits set in this flags value.

const fn from_bits(bits: c_uint) -> 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_uint) -> Self

Convert from a bits value, unsetting any unknown bits.

const fn from_bits_retain(bits: c_uint) -> 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 MFdFlags

const fn iter(&self) -> Iter<MFdFlags>

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<MFdFlags>

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 MFdFlags

fn fmt(&self, f: &mut Formatter<'_>) -> Result

impl BitAnd for MFdFlags

type Output = MFdFlags;
fn bitand(self, other: Self) -> Self

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

impl BitAndAssign for MFdFlags

fn bitand_assign(&mut self, other: Self)

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

impl BitOr for MFdFlags

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

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

impl BitOrAssign for MFdFlags

fn bitor_assign(&mut self, other: Self)

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

impl BitXor for MFdFlags

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

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

impl BitXorAssign for MFdFlags

fn bitxor_assign(&mut self, other: Self)

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

impl Clone for MFdFlags

fn clone(&self) -> Self

impl Copy for MFdFlags

impl Debug for MFdFlags

fn fmt(&self, f: &mut Formatter<'_>) -> Result

impl Eq for MFdFlags

impl Extend<MFdFlags> for MFdFlags

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

The bitwise or (|) of the bits in each flags value.

impl Flags for MFdFlags

const FLAGS: &'static [Flag<MFdFlags>] = _;
type Bits = u32;
fn bits(&self) -> c_uint
fn from_bits_retain(bits: c_uint) -> MFdFlags
fn all_named() -> MFdFlags

impl FromIterator<MFdFlags> for MFdFlags

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

The bitwise or (|) of the bits in each flags value.

impl Hash for MFdFlags

fn hash<__H: Hasher>(&self, state: &mut __H)

impl IntoIterator for MFdFlags

type Item = MFdFlags;
type IntoIter = Iter<MFdFlags>;
fn into_iter(self) -> Self::IntoIter

impl LowerHex for MFdFlags

fn fmt(&self, f: &mut Formatter<'_>) -> Result

impl Not for MFdFlags

type Output = MFdFlags;
fn not(self) -> Self

The bitwise negation (!) of the bits in self, truncating the result.

impl Octal for MFdFlags

fn fmt(&self, f: &mut Formatter<'_>) -> Result

impl Ord for MFdFlags

fn cmp(&self, other: &Self) -> Ordering

impl PartialEq for MFdFlags

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

impl PartialOrd for MFdFlags

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

impl PublicFlags for MFdFlags

type Primitive = u32;
type Internal = InternalBitFlags;

impl StructuralPartialEq for MFdFlags

impl Sub for MFdFlags

type Output = MFdFlags;
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 MFdFlags

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 MFdFlags

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Auto Trait Implementations

impl Freeze for MFdFlags

impl RefUnwindSafe for MFdFlags

impl Send for MFdFlags

impl Sync for MFdFlags

impl Unpin for MFdFlags

impl UnsafeUnpin for MFdFlags

impl UnwindSafe for MFdFlags

Blanket Implementations

impl<T> Any for MFdFlags where T: 'static + ?Sized,

fn type_id(&self) -> TypeId

impl<T> Borrow<T> for MFdFlags where T: ?Sized,

fn borrow(&self) -> &T

impl<T> BorrowMut<T> for MFdFlags where T: ?Sized,

fn borrow_mut(&mut self) -> &mut T

impl<T> CloneToUninit for MFdFlags where T: Clone,

unsafe fn clone_to_uninit(&self, dest: *mut u8)

impl<T> From<T> for MFdFlags

fn from(t: T) -> T

Returns the argument unchanged.

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

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

impl<T, U> Into<U> for MFdFlags 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 MFdFlags where U: Into<T>,

type Error = never;
fn try_from(value: U) -> Result<T, never>

impl<T, U> TryInto<U> for MFdFlags where U: TryFrom<T>,

type Error = <U as TryFrom<T>>::Error;
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>