Struct cap_primitives::fs::Permissions
source · pub struct Permissions { /* private fields */ }
Expand description
Representation of the various permissions on a file.
This corresponds to std::fs::Permissions
.
We need to define our own version because the libstd `Permissions` doesn't
have a public constructor that we can use.
Implementations§
source§impl Permissions
impl Permissions
sourcepub fn from_std(std: Permissions) -> Self
pub fn from_std(std: Permissions) -> Self
Constructs a new instance of Self
from the given
std::fs::Permissions
.
sourcepub fn into_std(self, file: &File) -> Result<Permissions>
pub fn into_std(self, file: &File) -> Result<Permissions>
Consumes self
and produces a new instance of std::fs::Permissions
.
The `file` parameter works around the fact that we can't construct a
`Permissions` object ourselves on Windows.
Examples found in repository?
src/windows/fs/set_permissions_unchecked.rs (line 20)
8 9 10 11 12 13 14 15 16 17 18 19 20 21
pub(crate) fn set_permissions_unchecked(
start: &fs::File,
path: &Path,
perm: Permissions,
) -> io::Result<()> {
// According to [Rust's documentation], `fs::set_permissions` uses
// `SetFileAttributes`, and according to [Windows' documentation]
// `SetFileAttributes` does not follow symbolic links.
//
// [Windows' documentation]: https://docs.microsoft.com/en-us/windows/win32/fileio/symbolic-link-effects-on-file-systems-functions#setfileattributes
// [Rust's documentation]: https://doc.rust-lang.org/std/fs/fn.set_permissions.html#platform-specific-behavior
let out_path = concatenate(start, path)?;
fs::set_permissions(out_path, perm.into_std(start)?)
}
sourcepub const fn readonly(&self) -> bool
pub const fn readonly(&self) -> bool
Returns true
if these permissions describe a readonly (unwritable)
file.
This corresponds to std::fs::Permissions::readonly
.
sourcepub fn set_readonly(&mut self, readonly: bool)
pub fn set_readonly(&mut self, readonly: bool)
Modifies the readonly flag for this set of permissions.
This corresponds to std::fs::Permissions::set_readonly
.
Trait Implementations§
source§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 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 ==
.