Struct OFlag

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

Configuration options for opened files.

Implementations

impl OFlag

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

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

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.

impl OFlag

const O_ACCMODE: Self = _;

Mask for the access mode of the file.

const O_APPEND: Self = _;

Open the file in append-only mode.

const O_ASYNC: Self = _;

Generate a signal when input or output becomes possible.

const O_CLOEXEC: Self = _;

Closes the file descriptor once an execve call is made.

Also sets the file offset to the beginning of the file.

const O_CREAT: Self = _;

Create the file if it does not exist.

const O_DIRECT: Self = _;

Try to minimize cache effects of the I/O for this file.

const O_DIRECTORY: Self = _;

If the specified path isn't a directory, fail.

const O_DSYNC: Self = _;

Implicitly follow each write() with an fdatasync().

const O_EXCL: Self = _;

Error out if a file was not created.

const O_FSYNC: Self = _;

Same as O_SYNC.

const O_LARGEFILE: Self = _;

Allow files whose sizes can't be represented in an off_t to be opened.

const O_NOATIME: Self = _;

Do not update the file last access time during read(2)s.

const O_NOCTTY: Self = _;

Don't attach the device as the process' controlling terminal.

const O_NDELAY: Self = _;

Same as O_NONBLOCK.

const O_NOFOLLOW: Self = _;

open() will fail if the given path is a symbolic link.

const O_NONBLOCK: Self = _;

When possible, open the file in nonblocking mode.

const O_PATH: Self = _;

Obtain a file descriptor for low-level access.

The file itself is not opened and other file operations will fail.

const O_RDONLY: Self = _;

Only allow reading.

This should not be combined with O_WRONLY or O_RDWR.

const O_RDWR: Self = _;

Allow both reading and writing.

This should not be combined with O_WRONLY or O_RDONLY.

const O_RSYNC: Self = _;

Similar to O_DSYNC but applies to reads instead.

const O_SYNC: Self = _;

Implicitly follow each write() with an fsync().

const O_TMPFILE: Self = _;

Create an unnamed temporary file.

const O_TRUNC: Self = _;

Truncate an existing regular file to 0 length if it allows writing.

const O_WRONLY: Self = _;

Only allow writing.

This should not be combined with O_RDONLY or O_RDWR.

impl OFlag

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_int

Get the underlying bits value.

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

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

Convert from a bits value, unsetting any unknown bits.

const fn from_bits_retain(bits: c_int) -> 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.

Trait Implementations

impl Binary for OFlag

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

impl BitAnd for OFlag

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

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

impl BitAndAssign for OFlag

fn bitand_assign(&mut self, other: Self)

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

impl BitOr for OFlag

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

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

impl BitOrAssign for OFlag

fn bitor_assign(&mut self, other: Self)

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

impl BitXor for OFlag

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

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

impl BitXorAssign for OFlag

fn bitxor_assign(&mut self, other: Self)

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

impl Clone for OFlag

fn clone(&self) -> Self

impl Copy for OFlag

impl Debug for OFlag

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

impl Eq for OFlag

impl Extend<OFlag> for OFlag

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

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

impl Flags for OFlag

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

impl FromIterator<OFlag> for OFlag

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

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

impl Hash for OFlag

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

impl IntoIterator for OFlag

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

impl LowerHex for OFlag

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

impl Not for OFlag

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

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

impl Octal for OFlag

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

impl Ord for OFlag

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

impl PartialEq for OFlag

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

impl PartialOrd for OFlag

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

impl PublicFlags for OFlag

type Primitive = i32;
type Internal = InternalBitFlags;

impl StructuralPartialEq for OFlag

impl Sub for OFlag

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

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 OFlag

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

Auto Trait Implementations

impl Freeze for OFlag

impl RefUnwindSafe for OFlag

impl Send for OFlag

impl Sync for OFlag

impl Unpin for OFlag

impl UnsafeUnpin for OFlag

impl UnwindSafe for OFlag

Blanket Implementations

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

fn type_id(&self) -> TypeId

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

fn borrow(&self) -> &T

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

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

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

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

impl<T> From<T> for OFlag

fn from(t: T) -> T

Returns the argument unchanged.

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

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

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

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

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

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