[][src]Struct cap_tempfile::TempDir

pub struct TempDir { /* fields omitted */ }

A directory in a filesystem that is automatically deleted when it goes out of scope.

This corresponds to tempfile::TempDir.

Unlike tempfile::TempDir, this API has no TempDir::path, TempDir::into_path, or impl AsRef<Path>, because absolute paths don't interoperate well with the capability model.

Implementations

impl TempDir[src]

pub unsafe fn new() -> Result<Self>[src]

Attempts to make a temporary directory inside of env::temp_dir().

This corresponds to tempfile::TempDir::new.

Safety

This function is unsafe because it makes use of ambient authority to access temporary directories, which doesn't uphold the invariant of the rest of the API. It is otherwise safe to use.

pub fn new_in(dir: &Dir) -> Result<Self>[src]

Create a new temporary directory.

This corresponds to tempfile::TempDir::new_in.

pub fn close(mut self: Self) -> Result<()>[src]

Closes and removes the temporary directory, returning a Result.

This corresponds to tempfile::TempDir::close.

Methods from Deref<Target = Dir>

pub fn open<P>(&self, path: P) -> Result<File, Error> where
    P: AsRef<Path>, 
[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_with<P>(
    &self,
    path: P,
    options: &OpenOptions
) -> Result<File, Error> where
    P: AsRef<Path>, 
[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 paths relative to self.

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

Attempts to open a directory.

pub fn create_dir<P>(&self, path: P) -> Result<(), Error> where
    P: AsRef<Path>, 
[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>(&self, path: P) -> Result<(), Error> where
    P: AsRef<Path>, 
[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_dir_with<P>(
    &self,
    path: P,
    dir_builder: &DirBuilder
) -> Result<(), Error> where
    P: AsRef<Path>, 
[src]

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

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

pub fn create<P>(&self, path: P) -> Result<File, Error> where
    P: AsRef<Path>, 
[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>(&self, path: P) -> Result<PathBuf, Error> where
    P: AsRef<Path>, 
[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, Q>(&self, from: P, to_dir: &Dir, to: Q) -> Result<u64, Error> where
    P: AsRef<Path>,
    Q: AsRef<Path>, 
[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>(&self, path: P) -> Result<Metadata, Error> where
    P: AsRef<Path>, 
[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 dir_metadata(&self) -> Result<Metadata, Error>[src]

Queries metadata about the underlying directory.

This is similar to std::fs::File::metadata, but for Dir rather than for File.

pub fn entries(&self) -> Result<ReadDir, Error>[src]

Returns an iterator over the entries within self.

pub fn read_dir<P>(&self, path: P) -> Result<ReadDir, Error> where
    P: AsRef<Path>, 
[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<P>(&self, path: P) -> Result<Vec<u8, Global>, Error> where
    P: AsRef<Path>, 
[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>(&self, path: P) -> Result<String, Error> where
    P: AsRef<Path>, 
[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>(&self, path: P) -> Result<(), Error> where
    P: AsRef<Path>, 
[src]

Removes an empty directory.

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

pub fn remove_dir_all<P>(&self, path: P) -> Result<(), Error> where
    P: AsRef<Path>, 
[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>(&self, path: P) -> Result<(), Error> where
    P: AsRef<Path>, 
[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, Q>(&self, from: P, to_dir: &Dir, to: Q) -> Result<(), Error> where
    P: AsRef<Path>,
    Q: AsRef<Path>, 
[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>(
    &self,
    path: P,
    perm: Permissions
) -> Result<(), Error> where
    P: AsRef<Path>, 
[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. Also, on some platforms, this function may fail if the file or directory cannot be opened for reading or writing first.

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<P, C>(&self, path: P, contents: C) -> Result<(), Error> where
    C: AsRef<[u8]>,
    P: AsRef<Path>, 
[src]

Write a slice as the entire contents of a file.

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

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>(&self, path: P) -> Result<UnixListener, Error> where
    P: AsRef<Path>, 
[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.

XXX: This function is not yet implemented.

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

Connects to the socket named by path.

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

XXX: This function is not yet implemented.

pub fn bind_unix_datagram<P>(&self, path: P) -> Result<UnixDatagram, Error> where
    P: AsRef<Path>, 
[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.

XXX: This function is not yet implemented.

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

Connects the socket to the specified address.

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

XXX: This function is not yet implemented.

pub fn send_to_unix_datagram_addr<P>(
    &self,
    _unix_datagram: &UnixDatagram,
    buf: &[u8],
    path: P
) -> Result<usize, Error> where
    P: AsRef<Path>, 
[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.

XXX: This function is not yet implemented.

pub fn try_clone(&self) -> Result<Dir, Error>[src]

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

pub fn exists<P>(&self, path: P) -> bool where
    P: AsRef<Path>, 
[src]

Returns true if the path points at an existing entity.

This corresponds to std::path::Path::exists, but only accesses paths relative to self.

pub fn is_file<P>(&self, path: P) -> bool where
    P: AsRef<Path>, 
[src]

Returns true if the path exists on disk and is pointing at a regular file.

This corresponds to std::path::Path::is_file, but only accesses paths relative to self.

pub fn is_dir<P>(&self, path: P) -> bool where
    P: AsRef<Path>, 
[src]

Checks if path is a directory.

This is similar to std::path::Path::is_dir in that it checks if path relative to Dir is a directory. This function will traverse symbolic links to query information about the destination file. In case of broken symbolic links, this will return false.

Trait Implementations

impl Debug for TempDir[src]

impl Deref for TempDir[src]

type Target = Dir

The resulting type after dereferencing.

impl Drop for TempDir[src]

Auto Trait Implementations

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.