Struct wasi_cap_std_sync::Dir [−][src]
pub struct Dir { /* fields omitted */ }
Expand description
A reference to an open directory on a filesystem.
This does not directly correspond to anything in std
, however its methods
correspond to the functions in std::fs
and the constructor methods for
std::fs::File
.
Unlike std::fs
, this API’s canonicalize
returns a relative path since
absolute paths don’t interoperate well with the capability model.
Implementations
Constructs a new instance of Self
from the given std::fs::File
.
To prevent race conditions on Windows, the file must be opened without
FILE_SHARE_DELETE
.
This grants access the resources the std::fs::File
instance already
has access to.
Consumes self
and returns a std::fs::File
.
Attempts to open a file in read-only mode.
This corresponds to std::fs::File::open
, but only accesses paths
relative to self
.
Opens a file at path
with the options specified by options
.
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
.
Attempts to open a directory.
Creates a new, empty directory at the provided path.
This corresponds to std::fs::create_dir
, but only accesses paths
relative to self
.
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
.
Creates the specified directory with the options configured in this builder.
This corresponds to std::fs::DirBuilder::create
.
Opens a file in write-only mode.
This corresponds to std::fs::File::create
, but only accesses paths
relative to self
.
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
.
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
.
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
.
Queries metadata about the underlying directory.
This is similar to std::fs::File::metadata
, but for Dir
rather
than for File
.
Returns an iterator over the entries within self
.
Returns an iterator over the entries within a directory.
This corresponds to std::fs::read_dir
, but only accesses paths
relative to self
.
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
.
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
.
Removes an empty directory.
This corresponds to std::fs::remove_dir
, but only accesses paths
relative to self
.
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
.
Remove the directory referenced by self
and consume self
.
Note that even though this implementation works in terms of handles as much as possible, removal is not guaranteed to be atomic with respect to a concurrent rename of the directory.
Removes the directory referenced by self
, after removing all its
contents, and consume self
. Use carefully!
Note that even though this implementation works in terms of handles as much as possible, removal is not guaranteed to be atomic with respect to a concurrent rename of the directory.
Removes a file from a filesystem.
This corresponds to std::fs::remove_file
, but only accesses paths
relative to self
.
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
.
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
.
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>,
pub fn bind_unix_listener<P>(&self, path: P) -> Result<UnixListener, Error> where
P: AsRef<Path>,
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>,
pub fn connect_unix_stream<P>(&self, path: P) -> Result<UnixStream, Error> where
P: AsRef<Path>,
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>,
pub fn bind_unix_datagram<P>(&self, path: P) -> Result<UnixDatagram, Error> where
P: AsRef<Path>,
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>,
pub fn connect_unix_datagram<P>(
&self,
_unix_datagram: &UnixDatagram,
path: P
) -> Result<(), Error> where
P: AsRef<Path>,
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.
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.
Creates a new Dir
instance that shares the same underlying file
handle as the existing Dir
instance.
Returns true
if the path points at an existing entity.
This corresponds to std::path::Path::exists
, but only
accesses paths relative to self
.
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
.
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
.
Constructs a new instance of Self
by opening the given path as a
directory using the host process’ ambient authority.
Ambient Authority
This function is not sandboxed and may access any path that the host process has access to.
Constructs a new instance of Self
by opening the parent directory
(aka “..”) of self
, using the host process’ ambient authority.
Ambient Authority
This function accesses a directory outside of the self
subtree.
Recursively create a directory and all of its parent components if they are missing, using the host process’ ambient authority.
Ambient Authority
This function is not sandboxed and may access any path that the host process has access to.
Trait Implementations
Borrows the file descriptor. Read more
Set the last access time for a file on a filesystem. Read more
Set the last modification time for a file on a filesystem. Read more
Set the last access and modification times for a file on a filesystem. Read more
Set the last access and modification times for a file on a filesystem. This function does not follow symlink. Read more
Creates a new symbolic link on a filesystem. Read more
Creates a new file symbolic link on a filesystem. Read more
Creates a new directory symbolic link on a filesystem. Read more
Similar to cap_std::fs::Dir::open_dir
, but fails if the path names a
symlink. Read more
Constructs a new instance of Self
from the given raw file
descriptor. Read more
Auto Trait Implementations
impl RefUnwindSafe for Dir
impl UnwindSafe for Dir
Blanket Implementations
Borrows the reference. Read more
pub fn as_filelike_view<Target>(&self) -> FilelikeView<'_, Target> where
Target: FromFilelike + IntoFilelike,
pub fn as_filelike_view<Target>(&self) -> FilelikeView<'_, Target> where
Target: FromFilelike + IntoFilelike,
Return a borrowing view of a resource which dereferences to a &Target
or &mut Target
. Read more
impl<T> AsGrip for T where
T: AsFd,
impl<T> AsGrip for T where
T: AsFd,
pub fn as_grip(&self) -> BorrowedFd<'_>
pub fn as_grip(&self) -> BorrowedFd<'_>
Extracts the grip.
Returns the raw value.
impl<T> AsRawGrip for T where
T: AsRawFd,
impl<T> AsRawGrip for T where
T: AsRawFd,
pub fn as_raw_grip(&self) -> i32
pub fn as_raw_grip(&self) -> i32
Extracts the raw grip.
Returns the raw value.
Borrows the reference.
pub fn as_socketlike_view<Target>(&self) -> FilelikeView<'_, Target> where
Target: FromSocketlike + IntoSocketlike,
pub fn as_socketlike_view<Target>(&self) -> FilelikeView<'_, Target> where
Target: FromSocketlike + IntoSocketlike,
Return a borrowing view of a resource which dereferences to a &Target
or &mut Target
. Read more
Mutably borrows from an owned value. Read more
Announce the expected access pattern of the data at the given offset.
Allocate space in the file, increasing the file size as needed, and ensuring that there are no holes under the given range. Read more
Pull some bytes from this source into the specified buffer, returning how many bytes were read. Read more
Read the exact number of bytes required to fill buf
. Read more
Reads a number of bytes starting from a given offset. Read more
Reads the exact number of byte required to fill buf from the given offset. Read more
Like read
, except that it reads into a slice of buffers. Read more
pub fn read_vectored_at(
&self,
bufs: &mut [IoSliceMut<'_>],
offset: u64
) -> Result<usize, Error>
pub fn read_vectored_at(
&self,
bufs: &mut [IoSliceMut<'_>],
offset: u64
) -> Result<usize, Error>
Is to read_vectored
what read_at
is to read
.
Determines if this Read
er has an efficient read_vectored_at
implementation. Read more
Read all bytes until EOF in this source, placing them into buf
. Read more
Read all bytes, starting at offset
, until EOF in this source, placing
them into buf
. Read more
Read all bytes until EOF in this source, appending them to buf
. Read more
Read all bytes, starting at offset
, until EOF in this source,
appending them to buf
. Read more
Read bytes from the current position without advancing the current position. Read more
Write a buffer into this writer, returning how many bytes were written. Read more
Attempts to write an entire buffer into this writer. Read more
Writes a number of bytes starting from a given offset. Read more
Attempts to write an entire buffer starting from a given offset. Read more
Like write
, except that it writes from a slice of buffers. Read more
Is to write_vectored
what write_at
is to write
.
Determines if this Write
r has an efficient write_vectored_at
implementation. Read more
Flush this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
Writes a formatted string into this writer, returning any error encountered. Read more
Seek to an offset, in bytes, in a stream. Read more
Returns the current seek position from the start of the stream. Read more
Is to read_vectored
what read_exact
is to read
.
fn read_exact_vectored_at(
&self,
bufs: &mut [IoSliceMut<'_>],
offset: u64
) -> Result<(), Error>
fn read_exact_vectored_at(
&self,
bufs: &mut [IoSliceMut<'_>],
offset: u64
) -> Result<(), Error>
Is to read_exact_vectored
what read_exact_at
is to read_exact
.
Is to write_vectored
what write_all
is to write
.
impl<T> FromGrip for T where
T: FromFd,
impl<T> FromGrip for T where
T: FromFd,
Constructs Self
from the raw value.
impl<T> FromRawGrip for T where
T: FromRawFd,
impl<T> FromRawGrip for T where
T: FromRawFd,
pub unsafe fn from_raw_grip(raw_grip: i32) -> T
pub unsafe fn from_raw_grip(raw_grip: i32) -> T
Consume an RawGrip
and convert into a Self
. Read more
Constructs Self
from the raw value.
Constructs a new instance of Self
from the given socketlike object.
Constructs a new instance of Self
from the given socketlike object
converted from into_owned
. Read more
Query the “status” flags for the self
file descriptor.
pub fn new_set_fd_flags(
&self,
fd_flags: FdFlags
) -> Result<SetFdFlags<T>, Error> where
T: AsFilelike,
pub fn new_set_fd_flags(
&self,
fd_flags: FdFlags
) -> Result<SetFdFlags<T>, Error> where
T: AsFilelike,
Create a new SetFdFlags
value for use with set_fd_flags
. Read more
pub fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error> where
T: AsFilelike,
pub fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error> where
T: AsFilelike,
Set the “status” flags for the self
file descriptor. Read more
Consumes this object, returning the underlying filelike object. Read more
impl<T> IntoGrip for T where
T: IntoFd,
impl<T> IntoGrip for T where
T: IntoFd,
Returns the raw value.
impl<T> IntoRawGrip for T where
T: IntoRawFd,
impl<T> IntoRawGrip for T where
T: IntoRawFd,
pub fn into_raw_grip(self) -> i32
pub fn into_raw_grip(self) -> i32
Consume self
and convert into an RawGrip
.
Consumes this object, returning the underlying socketlike object.
Test whether this output stream is attached to a terminal. Read more
pub fn set_times(
&self,
atime: Option<SystemTimeSpec>,
mtime: Option<SystemTimeSpec>
) -> Result<(), Error>
pub fn set_times(
&self,
atime: Option<SystemTimeSpec>,
mtime: Option<SystemTimeSpec>
) -> Result<(), Error>
Set the last access and last modification timestamps of an open file handle. Read more
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more