Skip to main content

Access

Struct Access 

Source
pub struct Access {
    pub mode: u32,
    pub user: u32,
    pub group: u32,
    pub control: [u8; 32],
}
Expand description

Who may use a file or directory, as publishing keeps it: where there are no modes, a read-only file has none of the write bits.

On Unix: the permission bits, the owner and the group, and on Linux the mandatory access control labels (SELinux, Smack), which publishing requires to be the same on every entry it compares. Access control that publishing could not keep is refused when the access is read: on Linux an access control list. On macOS and Windows access control lists are neither read nor kept.

Fields§

§mode: u32

The permission bits, with the set-user, set-group and sticky bits.

§user: u32

The owning user.

§group: u32

The owning group.

§control: [u8; 32]

A digest of the mandatory access control labels (Linux), all zero where there are none.

Implementations§

Source§

impl Access

Source

pub const fn group_reads_alone(&self) -> bool

Whether the group may read and others may not, so that the group says who may.

Source

pub const fn nested(&self, directory: bool) -> bool

Whether the classes that may reach content through an entry with this access, a directory if directory, nest: its owner may whenever its group may, and its group whenever others may. Where they do not, as for mode 0604, which denies the group what it lets others read, who may reach depends on who the owner and group are, which audience does not say.

Source

pub fn audience(&self, directory: bool) -> Audience

Who may reach content through an entry with this access, a directory if directory.

Source

pub fn new_file(&self) -> Self

The access a new file in a directory with this access is given: the directory’s mode without the execute bits, its group and its labels, and as its owner the user that makes it, this process’s effective user (0 where there are no users).

Trait Implementations§

Source§

impl Clone for Access

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Access

Source§

impl Debug for Access

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Eq for Access

Source§

impl PartialEq for Access

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Access

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

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

Source§

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

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

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

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.