pub struct File { /* private fields */ }Expand description
A reference to an open file on a filesystem.
This corresponds to std::fs::File.
This File has no open or create methods. To open or create a file,
first obtain a Dir containing the path, and then call Dir::open or
Dir::create.
Implementations§
source§impl File
 
impl File
sourcepub fn from_std(std: File) -> Self
 
pub fn from_std(std: File) -> Self
Constructs a new instance of Self from the given std::fs::File.
This grants access the resources the std::fs::File instance already
has access to.
sourcepub fn into_std(self) -> File
 
pub fn into_std(self) -> File
Consumes self and returns a std::fs::File.
sourcepub fn sync_all(&self) -> Result<()>
 
pub fn sync_all(&self) -> Result<()>
Attempts to sync all OS-internal metadata to disk.
This corresponds to std::fs::File::sync_all.
sourcepub fn sync_data(&self) -> Result<()>
 
pub fn sync_data(&self) -> Result<()>
This function is similar to sync_all, except that it may not
synchronize file metadata to a filesystem.
This corresponds to std::fs::File::sync_data.
sourcepub fn set_len(&self, size: u64) -> Result<()>
 
pub fn set_len(&self, size: u64) -> Result<()>
Truncates or extends the underlying file, updating the size of this file to become size.
This corresponds to std::fs::File::set_len.
sourcepub fn metadata(&self) -> Result<Metadata>
 
pub fn metadata(&self) -> Result<Metadata>
Queries metadata about the underlying file.
This corresponds to std::fs::File::metadata.
sourcepub fn try_clone(&self) -> Result<Self>
 
pub fn try_clone(&self) -> Result<Self>
Creates a new File instance that shares the same underlying file
handle as the existing File instance.
This corresponds to std::fs::File::try_clone.
sourcepub fn set_permissions(&self, perm: Permissions) -> Result<()>
 
pub fn set_permissions(&self, perm: Permissions) -> Result<()>
Changes the permissions on the underlying file.
This corresponds to std::fs::File::set_permissions.
sourcepub fn open_ambient<P: AsRef<Path>>(
    path: P,
    ambient_authority: AmbientAuthority
) -> Result<Self>
 
pub fn open_ambient<P: AsRef<Path>>( path: P, ambient_authority: AmbientAuthority ) -> Result<Self>
Constructs a new instance of Self in read-only mode by opening the
given path as a file 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.
sourcepub fn open_ambient_with<P: AsRef<Path>>(
    path: P,
    options: &OpenOptions,
    ambient_authority: AmbientAuthority
) -> Result<Self>
 
pub fn open_ambient_with<P: AsRef<Path>>( path: P, options: &OpenOptions, ambient_authority: AmbientAuthority ) -> Result<Self>
Constructs a new instance of Self with the options specified by
options by opening the given path as a file 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.
sourcepub fn options() -> OpenOptions
 
pub fn options() -> OpenOptions
Returns a new OpenOptions object.
This corresponds to std::fs::File::options.
Trait Implementations§
source§impl AsHandle for File
Available on Windows only. 
impl AsHandle for File
source§fn as_handle(&self) -> BorrowedHandle<'_>
 
fn as_handle(&self) -> BorrowedHandle<'_>
source§impl AsHandleOrSocket for File
Available on Windows only. 
impl AsHandleOrSocket for File
source§fn as_handle_or_socket(&self) -> BorrowedHandleOrSocket<'_>
 
fn as_handle_or_socket(&self) -> BorrowedHandleOrSocket<'_>
AsHandle::as_handle and AsSocket::as_socket
but can return either type.source§impl AsRawHandle for File
Available on Windows only. 
impl AsRawHandle for File
source§fn as_raw_handle(&self) -> RawHandle
 
fn as_raw_handle(&self) -> RawHandle
source§impl AsRawHandleOrSocket for File
Available on Windows only. 
impl AsRawHandleOrSocket for File
source§fn as_raw_handle_or_socket(&self) -> RawHandleOrSocket
 
fn as_raw_handle_or_socket(&self) -> RawHandleOrSocket
AsRawHandle::as_raw_handle and AsRawSocket::as_raw_socket
but can return either type.source§impl From<File> for OwnedHandle
Available on Windows only. 
impl From<File> for OwnedHandle
source§fn from(file: File) -> OwnedHandle
 
fn from(file: File) -> OwnedHandle
source§impl From<File> for OwnedHandleOrSocket
Available on Windows only. 
impl From<File> for OwnedHandleOrSocket
source§impl From<OwnedHandle> for File
Available on Windows only. 
impl From<OwnedHandle> for File
source§fn from(handle: OwnedHandle) -> Self
 
fn from(handle: OwnedHandle) -> Self
source§impl FromRawHandle for File
Available on Windows only. 
impl FromRawHandle for File
source§unsafe fn from_raw_handle(handle: RawHandle) -> Self
 
unsafe fn from_raw_handle(handle: RawHandle) -> Self
source§impl IntoRawHandle for File
Available on Windows only. 
impl IntoRawHandle for File
source§fn into_raw_handle(self) -> RawHandle
 
fn into_raw_handle(self) -> RawHandle
source§impl IntoRawHandleOrSocket for File
Available on Windows only. 
impl IntoRawHandleOrSocket for File
source§fn into_raw_handle_or_socket(self) -> RawHandleOrSocket
 
fn into_raw_handle_or_socket(self) -> RawHandleOrSocket
IntoRawHandle::into_raw_handle and
IntoRawSocket::into_raw_socket but can return either type.source§impl Read for &File
 
impl Read for &File
source§fn read(&mut self, buf: &mut [u8]) -> Result<usize>
 
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
source§fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize>
 
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize>
read, except that it reads into a slice of buffers. Read moresource§fn read_exact(&mut self, buf: &mut [u8]) -> Result<()>
 
fn read_exact(&mut self, buf: &mut [u8]) -> Result<()>
buf. Read moresource§fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize>
 
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize>
buf. Read moresource§fn read_to_string(&mut self, buf: &mut String) -> Result<usize>
 
fn read_to_string(&mut self, buf: &mut String) -> Result<usize>
buf. Read moresource§fn is_read_vectored(&self) -> bool
 
fn is_read_vectored(&self) -> bool
can_vector)source§fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
 
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
read_buf)source§fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
 
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
read_buf)cursor. Read more1.0.0 · source§fn by_ref(&mut self) -> &mut Selfwhere
    Self: Sized,
 
fn by_ref(&mut self) -> &mut Selfwhere Self: Sized,
Read. Read moresource§impl Read for File
 
impl Read for File
source§fn read(&mut self, buf: &mut [u8]) -> Result<usize>
 
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
source§fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize>
 
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize>
read, except that it reads into a slice of buffers. Read moresource§fn read_exact(&mut self, buf: &mut [u8]) -> Result<()>
 
fn read_exact(&mut self, buf: &mut [u8]) -> Result<()>
buf. Read moresource§fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize>
 
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize>
buf. Read moresource§fn read_to_string(&mut self, buf: &mut String) -> Result<usize>
 
fn read_to_string(&mut self, buf: &mut String) -> Result<usize>
buf. Read moresource§fn is_read_vectored(&self) -> bool
 
fn is_read_vectored(&self) -> bool
can_vector)source§fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
 
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
read_buf)source§fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
 
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
read_buf)cursor. Read more1.0.0 · source§fn by_ref(&mut self) -> &mut Selfwhere
    Self: Sized,
 
fn by_ref(&mut self) -> &mut Selfwhere Self: Sized,
Read. Read moresource§impl Seek for &File
 
impl Seek for &File
source§fn seek(&mut self, pos: SeekFrom) -> Result<u64>
 
fn seek(&mut self, pos: SeekFrom) -> Result<u64>
source§fn stream_position(&mut self) -> Result<u64>
 
fn stream_position(&mut self) -> Result<u64>
source§impl Seek for File
 
impl Seek for File
source§fn seek(&mut self, pos: SeekFrom) -> Result<u64>
 
fn seek(&mut self, pos: SeekFrom) -> Result<u64>
source§fn stream_position(&mut self) -> Result<u64>
 
fn stream_position(&mut self) -> Result<u64>
source§impl Write for &File
 
impl Write for &File
source§fn write(&mut self, buf: &[u8]) -> Result<usize>
 
fn write(&mut self, buf: &[u8]) -> Result<usize>
source§fn flush(&mut self) -> Result<()>
 
fn flush(&mut self) -> Result<()>
source§fn write_all(&mut self, buf: &[u8]) -> Result<()>
 
fn write_all(&mut self, buf: &[u8]) -> Result<()>
source§fn is_write_vectored(&self) -> bool
 
fn is_write_vectored(&self) -> bool
can_vector)source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<()>
 
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<()>
write_all_vectored)source§impl Write for File
 
impl Write for File
source§fn write(&mut self, buf: &[u8]) -> Result<usize>
 
fn write(&mut self, buf: &[u8]) -> Result<usize>
source§fn flush(&mut self) -> Result<()>
 
fn flush(&mut self) -> Result<()>
source§fn write_all(&mut self, buf: &[u8]) -> Result<()>
 
fn write_all(&mut self, buf: &[u8]) -> Result<()>
source§fn is_write_vectored(&self) -> bool
 
fn is_write_vectored(&self) -> bool
can_vector)source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<()>
 
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<()>
write_all_vectored)impl FilelikeViewType for File
Auto Trait Implementations§
impl RefUnwindSafe for File
impl Send for File
impl Sync for File
impl Unpin for File
impl UnwindSafe for File
Blanket Implementations§
source§impl<T> AsFilelike for Twhere
    T: AsHandle,
 
impl<T> AsFilelike for Twhere T: AsHandle,
source§fn as_filelike(&self) -> BorrowedHandle<'_>
 
fn as_filelike(&self) -> BorrowedHandle<'_>
source§fn as_filelike_view<Target>(&self) -> FilelikeView<'_, Target>where
    Target: FilelikeViewType,
 
fn as_filelike_view<Target>(&self) -> FilelikeView<'_, Target>where Target: FilelikeViewType,
&Target. Read moresource§impl<T> AsGrip for Twhere
    T: AsHandleOrSocket,
 
impl<T> AsGrip for Twhere T: AsHandleOrSocket,
source§fn as_grip(&self) -> BorrowedHandleOrSocket<'_>
 
fn as_grip(&self) -> BorrowedHandleOrSocket<'_>
source§impl<T> AsRawFilelike for Twhere
    T: AsRawHandle,
 
impl<T> AsRawFilelike for Twhere T: AsRawHandle,
source§fn as_raw_filelike(&self) -> *mut c_void
 
fn as_raw_filelike(&self) -> *mut c_void
source§impl<T> AsRawGrip for Twhere
    T: AsRawHandleOrSocket,
 
impl<T> AsRawGrip for Twhere T: AsRawHandleOrSocket,
source§fn as_raw_grip(&self) -> RawHandleOrSocket
 
fn as_raw_grip(&self) -> RawHandleOrSocket
source§impl<T> FromFilelike for Twhere
    T: From<OwnedHandle>,
 
impl<T> FromFilelike for Twhere T: From<OwnedHandle>,
source§fn from_filelike(owned: OwnedHandle) -> T
 
fn from_filelike(owned: OwnedHandle) -> T
Self from the given filelike object. Read moresource§fn from_into_filelike<Owned>(owned: Owned) -> Twhere
    Owned: IntoFilelike,
 
fn from_into_filelike<Owned>(owned: Owned) -> Twhere Owned: IntoFilelike,
Self from the given filelike object
converted from into_owned. Read moresource§impl<T> FromHandle for Twhere
    T: From<OwnedHandle>,
 
impl<T> FromHandle for Twhere T: From<OwnedHandle>,
source§fn from_handle(owned_handle: OwnedHandle) -> T
 
fn from_handle(owned_handle: OwnedHandle) -> T
Self from the given handle. Read moresource§fn from_into_handle<Owned>(into_owned: Owned) -> Selfwhere
    Owned: Into<OwnedHandle>,
    Self: Sized + From<OwnedHandle>,
 
fn from_into_handle<Owned>(into_owned: Owned) -> Selfwhere Owned: Into<OwnedHandle>, Self: Sized + From<OwnedHandle>,
source§impl<T> FromRawFilelike for Twhere
    T: FromRawHandle,
 
impl<T> FromRawFilelike for Twhere T: FromRawHandle,
source§unsafe fn from_raw_filelike(raw: *mut c_void) -> T
 
unsafe fn from_raw_filelike(raw: *mut c_void) -> T
Self from the raw value.source§impl<T> IntoFilelike for Twhere
    T: Into<OwnedHandle>,
 
impl<T> IntoFilelike for Twhere T: Into<OwnedHandle>,
source§fn into_filelike(self) -> OwnedHandle
 
fn into_filelike(self) -> OwnedHandle
source§impl<T> IntoGrip for Twhere
    T: Into<OwnedHandleOrSocket>,
 
impl<T> IntoGrip for Twhere T: Into<OwnedHandleOrSocket>,
source§fn into_grip(self) -> OwnedHandleOrSocket
 
fn into_grip(self) -> OwnedHandleOrSocket
self and convert into an OwnedGrip.source§impl<T> IntoHandle for Twhere
    OwnedHandle: From<T>,
 
impl<T> IntoHandle for Twhere OwnedHandle: From<T>,
source§fn into_handle(self) -> OwnedHandle
 
fn into_handle(self) -> OwnedHandle
source§impl<T> IntoRawFilelike for Twhere
    T: IntoRawHandle,
 
impl<T> IntoRawFilelike for Twhere T: IntoRawHandle,
source§fn into_raw_filelike(self) -> *mut c_void
 
fn into_raw_filelike(self) -> *mut c_void
source§impl<T> IntoRawGrip for Twhere
    T: IntoRawHandleOrSocket,
 
impl<T> IntoRawGrip for Twhere T: IntoRawHandleOrSocket,
source§fn into_raw_grip(self) -> RawHandleOrSocket
 
fn into_raw_grip(self) -> RawHandleOrSocket
self and convert into an RawGrip.