[][src]Struct cap_std::fs::Dir

pub struct Dir { /* fields omitted */ }

A reference to an open directory on a filesystem.

TODO: Add OFlag::CLOEXEC to yanix and use it in open_file and friends.

TODO: Windows support.

Unlike std::fs, this API's canonicalize returns a relative path since absolute paths don't interoperate well with the capability model.

Implementations

impl Dir[src]

pub fn from_std_file(std_file: File) -> Self[src]

Constructs a new instance of Self from the given std::fs::File.

pub fn open_file<P: AsRef<Path>>(&self, path: P) -> Result<File>[src]

Attempts to open a file in read-only mode.

This corresponds to std::fs::File::open, but only accesses paths relative to self.

pub fn open_file_with<P: AsRef<Path>>(
    &self,
    path: P,
    options: &OpenOptions
) -> Result<File>
[src]

Opens a file at path with the options specified by self.

This corresponds to std::fs::OpenOptions::open.

Instead of being a method on OpenOptions, this is a method on Dir, and it only accesses functions relative to self.

pub fn open_dir<P: AsRef<Path>>(&self, path: P) -> Result<Self>[src]

Attempts to open a directory.

pub fn create_dir<P: AsRef<Path>>(&self, path: P) -> Result<()>[src]

Creates a new, empty directory at the provided path.

This corresponds to std::fs::create_dir, but only accesses paths relative to self.

pub fn create_dir_all<P: AsRef<Path>>(&self, path: P) -> Result<()>[src]

Recursively create a directory and all of its parent components if they are missing.

This corresponds to std::fs::create_dir_all, but only accesses paths relative to self.

pub fn create_file<P: AsRef<Path>>(&self, path: P) -> Result<File>[src]

Opens a file in write-only mode.

This corresponds to std::fs::File::create, but only accesses paths relative to self.

pub fn canonicalize<P: AsRef<Path>>(&self, path: P) -> Result<PathBuf>[src]

Returns the canonical form of a path with all intermediate components normalized and symbolic links resolved.

This corresponds to std::fs::canonicalize, but instead of returning an absolute path, returns a path relative to the directory represented by self.

pub fn copy<P: AsRef<Path>, Q: AsRef<Path>>(
    &self,
    from: P,
    to: Q
) -> Result<u64>
[src]

Copies the contents of one file to another. This function will also copy the permission bits of the original file to the destination file.

This corresponds to std::fs::copy, but only accesses paths relative to self.

Creates a new hard link on a filesystem.

This corresponds to std::fs::hard_link, but only accesses paths relative to self.

pub fn metadata<P: AsRef<Path>>(&self, path: P) -> Result<Metadata>[src]

Given a path, query the file system to get information about a file, directory, etc.

This corresponds to std::fs::metadata, but only accesses paths relative to self.

pub fn read_dir<P: AsRef<Path>>(&self, path: P) -> Result<ReadDir>[src]

Returns an iterator over the entries within a directory.

This corresponds to std::fs::read_dir, but only accesses paths relative to self.

pub fn read_file<P: AsRef<Path>>(&self, path: P) -> Result<Vec<u8>>[src]

Read the entire contents of a file into a bytes vector.

This corresponds to std::fs::read, but only accesses paths relative to self.

Reads a symbolic link, returning the file that the link points to.

This corresponds to std::fs::read_link, but only accesses paths relative to self.

pub fn read_to_string<P: AsRef<Path>>(&self, path: P) -> Result<String>[src]

Read the entire contents of a file into a string.

This corresponds to std::fs::read_to_string, but only accesses paths relative to self.

pub fn remove_dir<P: AsRef<Path>>(&self, path: P) -> Result<()>[src]

Removes an existing, empty directory.

This corresponds to std::fs::remove_dir, but only accesses paths relative to self.

pub fn remove_dir_all<P: AsRef<Path>>(&self, path: P) -> Result<()>[src]

Removes a directory at this path, after removing all its contents. Use carefully!

This corresponds to std::fs::remove_dir_all, but only accesses paths relative to self.

pub fn remove_file<P: AsRef<Path>>(&self, path: P) -> Result<()>[src]

Removes a file from a filesystem.

This corresponds to std::fs::remove_file, but only accesses paths relative to self.

pub fn rename<P: AsRef<Path>, Q: AsRef<Path>>(
    &self,
    from: P,
    to: Q
) -> Result<()>
[src]

Rename a file or directory to a new name, replacing the original file if to already exists.

This corresponds to std::fs::rename, but only accesses paths relative to self.

pub fn set_permissions<P: AsRef<Path>>(
    &self,
    path: P,
    perm: Permissions
) -> Result<()>
[src]

Changes the permissions found on a file or a directory.

This corresponds to std::fs::set_permissions, but only accesses paths relative to self.

Query the metadata about a file without following symlinks.

This corresponds to std::fs::symlink_metadata, but only accesses paths relative to self.

pub fn write_file<P: AsRef<Path>, C: AsRef<[u8]>>(
    &self,
    path: P,
    contents: C
) -> Result<()>
[src]

Write a slice as the entire contents of a file.

This corresponds to std::fs::write, but only accesses paths relative to self.

pub fn create_with_dir_builder<P: AsRef<Path>>(
    &self,
    dir_builder: &DirBuilder,
    path: P
) -> Result<()>
[src]

Creates the specified directory with the options configured in this builder.

This corresponds to std::fs::DirBuilder::create.

Creates a new symbolic link on a filesystem.

This corresponds to std::os::unix::fs::symlink, but only accesses paths relative to self.

pub fn bind_unix_listener<P: AsRef<Path>>(
    &self,
    path: P
) -> Result<UnixListener>
[src]

Creates a new UnixListener bound to the specified socket.

This corresponds to std::os::unix::net::UnixListener::bind, but only accesses paths relative to self.

pub fn connect_unix_stream<P: AsRef<Path>>(&self, path: P) -> Result<UnixStream>[src]

Connects to the socket named by path.

This corresponds to std::os::unix::net::UnixStream::connect, but only accesses paths relative to self.

pub fn bind_unix_datagram<P: AsRef<Path>>(
    &self,
    path: P
) -> Result<UnixDatagram>
[src]

Creates a Unix datagram socket bound to the given path.

This corresponds to std::os::unix::net::UnixDatagram::bind, but only accesses paths relative to self.

pub fn connect_unix_datagram<P: AsRef<Path>>(
    &self,
    unix_datagram: &UnixDatagram,
    path: P
) -> Result<()>
[src]

Connects the socket to the specified address.

This corresponds to std::os::unix::net::UnixDatagram::connect, but only accesses paths relative to self.

pub fn send_to_unix_datagram_addr<P: AsRef<Path>>(
    &self,
    unix_datagram: &UnixDatagram,
    buf: &[u8],
    path: P
) -> Result<usize>
[src]

Sends data on the socket to the specified address.

This corresponds to std::os::unix::net::UnixDatagram::send_to, but only accesses paths relative to self.

pub fn try_clone(&self) -> Result<Self>[src]

Creates a new Dir instance that shares the same underlying file handle as the existing Dir instance.

Trait Implementations

impl AsRawFd for Dir[src]

impl FromRawFd for Dir[src]

impl IntoRawFd for Dir[src]

Auto Trait Implementations

impl RefUnwindSafe for Dir

impl Send for Dir

impl Sync for Dir

impl Unpin for Dir

impl UnwindSafe for Dir

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.