pub trait FileDescription: Debug + Any {
// Required method
fn name(&self) -> &'static str;
// Provided methods
fn read<'tcx>(
&self,
_self_ref: &FileDescriptionRef,
_communicate_allowed: bool,
_ptr: Pointer,
_len: usize,
_dest: &MPlaceTy<'tcx>,
_ecx: &mut MiriInterpCx<'tcx>,
) -> InterpResult<'tcx> { ... }
fn write<'tcx>(
&self,
_self_ref: &FileDescriptionRef,
_communicate_allowed: bool,
_ptr: Pointer,
_len: usize,
_dest: &MPlaceTy<'tcx>,
_ecx: &mut MiriInterpCx<'tcx>,
) -> InterpResult<'tcx> { ... }
fn seek<'tcx>(
&self,
_communicate_allowed: bool,
_offset: SeekFrom,
) -> InterpResult<'tcx, Result<u64>> { ... }
fn close<'tcx>(
self: Box<Self>,
_communicate_allowed: bool,
_ecx: &mut MiriInterpCx<'tcx>,
) -> InterpResult<'tcx, Result<()>> { ... }
fn metadata<'tcx>(&self) -> InterpResult<'tcx, Result<Metadata>> { ... }
fn is_tty(&self, _communicate_allowed: bool) -> bool { ... }
fn as_unix(&self) -> &dyn UnixFileDescription { ... }
}
Expand description
Represents an open file description.
Required Methods§
Provided Methods§
Sourcefn read<'tcx>(
&self,
_self_ref: &FileDescriptionRef,
_communicate_allowed: bool,
_ptr: Pointer,
_len: usize,
_dest: &MPlaceTy<'tcx>,
_ecx: &mut MiriInterpCx<'tcx>,
) -> InterpResult<'tcx>
fn read<'tcx>( &self, _self_ref: &FileDescriptionRef, _communicate_allowed: bool, _ptr: Pointer, _len: usize, _dest: &MPlaceTy<'tcx>, _ecx: &mut MiriInterpCx<'tcx>, ) -> InterpResult<'tcx>
Reads as much as possible into the given buffer ptr
.
len
indicates how many bytes we should try to read.
dest
is where the return value should be stored: number of bytes read, or -1
in case of error.
Sourcefn write<'tcx>(
&self,
_self_ref: &FileDescriptionRef,
_communicate_allowed: bool,
_ptr: Pointer,
_len: usize,
_dest: &MPlaceTy<'tcx>,
_ecx: &mut MiriInterpCx<'tcx>,
) -> InterpResult<'tcx>
fn write<'tcx>( &self, _self_ref: &FileDescriptionRef, _communicate_allowed: bool, _ptr: Pointer, _len: usize, _dest: &MPlaceTy<'tcx>, _ecx: &mut MiriInterpCx<'tcx>, ) -> InterpResult<'tcx>
Writes as much as possible from the given buffer ptr
.
len
indicates how many bytes we should try to write.
dest
is where the return value should be stored: number of bytes written, or -1
in case of error.
Sourcefn seek<'tcx>(
&self,
_communicate_allowed: bool,
_offset: SeekFrom,
) -> InterpResult<'tcx, Result<u64>>
fn seek<'tcx>( &self, _communicate_allowed: bool, _offset: SeekFrom, ) -> InterpResult<'tcx, Result<u64>>
Seeks to the given offset (which can be relative to the beginning, end, or current position). Returns the new position from the start of the stream.