Struct priv_sep::Permissions
source · pub struct Permissions {
pub create: bool,
pub execute: bool,
pub read: bool,
pub write: bool,
}
Available on crate feature
openbsd
only.Expand description
permissions
to unveil(2)
.
Fields§
§create: bool
Consult unveil(2)
.
execute: bool
Consult unveil(2)
.
read: bool
Consult unveil(2)
.
write: bool
Consult unveil(2)
.
Implementations§
source§impl Permissions
impl Permissions
sourcepub const CREATE: Self = _
pub const CREATE: Self = _
A Permissions
with only Permissions::create
set to true
.
sourcepub const EXECUTE: Self = _
pub const EXECUTE: Self = _
A Permissions
with only Permissions::execute
set to true
.
sourcepub const READ: Self = _
pub const READ: Self = _
A Permissions
with only Permissions::read
set to true
.
sourcepub const WRITE: Self = _
pub const WRITE: Self = _
A Permissions
with only Permissions::write
set to true
.
sourcepub fn unveil<P: AsRef<Path>>(self, path: P) -> Result<(), UnveilErr>
pub fn unveil<P: AsRef<Path>>(self, path: P) -> Result<(), UnveilErr>
Invokes unveil(2)
passing path
for path
and the contained permissions for permissions
.
§Errors
Returns NulError
iff CString::new
does.
Returns io::Error
iff unveil(2)
errors.
§Examples
use std::io::ErrorKind;
use priv_sep::{Permissions, UnveilErr};
assert!(Permissions::READ.unveil("/path/to/read").is_ok());
assert!(Permissions::READ.unveil("/path/does/not/exist").map_or_else(
|err| match err {
UnveilErr::Io(e) => e.kind() == ErrorKind::NotFound,
UnveilErr::Nul(_) => false,
},
|_| false
));
Trait Implementations§
source§impl BitAnd<&Permissions> for &Permissions
impl BitAnd<&Permissions> for &Permissions
§type Output = Permissions
type Output = Permissions
The resulting type after applying the
&
operator.source§impl BitAnd<&Permissions> for Permissions
impl BitAnd<&Permissions> for Permissions
source§impl<'a> BitAnd<Permissions> for &'a Permissions
impl<'a> BitAnd<Permissions> for &'a Permissions
§type Output = Permissions
type Output = Permissions
The resulting type after applying the
&
operator.source§impl BitAnd for Permissions
impl BitAnd for Permissions
source§impl BitAndAssign<&Permissions> for Permissions
impl BitAndAssign<&Permissions> for Permissions
source§fn bitand_assign(&mut self, rhs: &Self)
fn bitand_assign(&mut self, rhs: &Self)
Performs the
&=
operation. Read moresource§impl BitAndAssign for Permissions
impl BitAndAssign for Permissions
source§fn bitand_assign(&mut self, rhs: Self)
fn bitand_assign(&mut self, rhs: Self)
Performs the
&=
operation. Read moresource§impl BitOr<&Permissions> for &Permissions
impl BitOr<&Permissions> for &Permissions
§type Output = Permissions
type Output = Permissions
The resulting type after applying the
|
operator.source§impl BitOr<&Permissions> for Permissions
impl BitOr<&Permissions> for Permissions
source§impl<'a> BitOr<Permissions> for &'a Permissions
impl<'a> BitOr<Permissions> for &'a Permissions
§type Output = Permissions
type Output = Permissions
The resulting type after applying the
|
operator.source§impl BitOr for Permissions
impl BitOr for Permissions
source§impl BitOrAssign<&Permissions> for Permissions
impl BitOrAssign<&Permissions> for Permissions
source§fn bitor_assign(&mut self, rhs: &Self)
fn bitor_assign(&mut self, rhs: &Self)
Performs the
|=
operation. Read moresource§impl BitOrAssign for Permissions
impl BitOrAssign for Permissions
source§fn bitor_assign(&mut self, rhs: Self)
fn bitor_assign(&mut self, rhs: Self)
Performs the
|=
operation. Read moresource§impl BitXor<&Permissions> for &Permissions
impl BitXor<&Permissions> for &Permissions
§type Output = Permissions
type Output = Permissions
The resulting type after applying the
^
operator.source§impl BitXor<&Permissions> for Permissions
impl BitXor<&Permissions> for Permissions
source§impl<'a> BitXor<Permissions> for &'a Permissions
impl<'a> BitXor<Permissions> for &'a Permissions
§type Output = Permissions
type Output = Permissions
The resulting type after applying the
^
operator.source§impl BitXor for Permissions
impl BitXor for Permissions
source§impl BitXorAssign<&Permissions> for Permissions
impl BitXorAssign<&Permissions> for Permissions
source§fn bitxor_assign(&mut self, rhs: &Self)
fn bitxor_assign(&mut self, rhs: &Self)
Performs the
^=
operation. Read moresource§impl BitXorAssign for Permissions
impl BitXorAssign for Permissions
source§fn bitxor_assign(&mut self, rhs: Self)
fn bitxor_assign(&mut self, rhs: Self)
Performs the
^=
operation. Read moresource§impl Clone for Permissions
impl Clone for Permissions
source§fn clone(&self) -> Permissions
fn clone(&self) -> Permissions
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for Permissions
impl Debug for Permissions
source§impl Default for Permissions
impl Default for Permissions
source§fn default() -> Permissions
fn default() -> Permissions
Returns the “default value” for a type. Read more
source§impl Display for Permissions
impl Display for Permissions
source§impl Hash for Permissions
impl Hash for Permissions
source§impl Not for &Permissions
impl Not for &Permissions
source§impl Not for Permissions
impl Not for Permissions
source§impl Ord for Permissions
impl Ord for Permissions
source§fn cmp(&self, other: &Permissions) -> Ordering
fn cmp(&self, other: &Permissions) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
source§impl PartialEq<&Permissions> for Permissions
impl PartialEq<&Permissions> for Permissions
source§impl PartialEq<Permissions> for &Permissions
impl PartialEq<Permissions> for &Permissions
source§fn eq(&self, other: &Permissions) -> bool
fn eq(&self, other: &Permissions) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl PartialEq for Permissions
impl PartialEq for Permissions
source§fn eq(&self, other: &Permissions) -> bool
fn eq(&self, other: &Permissions) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd for Permissions
impl PartialOrd for Permissions
source§fn partial_cmp(&self, other: &Permissions) -> Option<Ordering>
fn partial_cmp(&self, other: &Permissions) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moreimpl Copy for Permissions
impl Eq for Permissions
impl StructuralPartialEq for Permissions
Auto Trait Implementations§
impl Freeze for Permissions
impl RefUnwindSafe for Permissions
impl Send for Permissions
impl Sync for Permissions
impl Unpin for Permissions
impl UnwindSafe for Permissions
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more