Trait miri::shims::unix::fd::FileDescription

source ·
pub trait FileDescription: Debug + Any {
    // Required method
    fn name(&self) -> &'static str;

    // Provided methods
    fn read<'tcx>(
        &self,
        _self_ref: &FileDescriptionRef,
        _communicate_allowed: bool,
        _bytes: &mut [u8],
        _ecx: &mut MiriInterpCx<'tcx>,
    ) -> InterpResult<'tcx, Result<usize>> { ... }
    fn write<'tcx>(
        &self,
        _self_ref: &FileDescriptionRef,
        _communicate_allowed: bool,
        _bytes: &[u8],
        _ecx: &mut MiriInterpCx<'tcx>,
    ) -> InterpResult<'tcx, Result<usize>> { ... }
    fn pread<'tcx>(
        &self,
        _communicate_allowed: bool,
        _bytes: &mut [u8],
        _offset: u64,
        _ecx: &mut MiriInterpCx<'tcx>,
    ) -> InterpResult<'tcx, Result<usize>> { ... }
    fn pwrite<'tcx>(
        &self,
        _communicate_allowed: bool,
        _bytes: &[u8],
        _offset: u64,
        _ecx: &mut MiriInterpCx<'tcx>,
    ) -> InterpResult<'tcx, Result<usize>> { ... }
    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 flock<'tcx>(
        &self,
        _communicate_allowed: bool,
        _op: FlockOp,
    ) -> InterpResult<'tcx, Result<()>> { ... }
    fn is_tty(&self, _communicate_allowed: bool) -> bool { ... }
    fn get_epoll_ready_events<'tcx>(
        &self,
    ) -> InterpResult<'tcx, EpollReadyEvents> { ... }
}
Expand description

Represents an open file descriptor.

Required Methods§

source

fn name(&self) -> &'static str

Provided Methods§

source

fn read<'tcx>( &self, _self_ref: &FileDescriptionRef, _communicate_allowed: bool, _bytes: &mut [u8], _ecx: &mut MiriInterpCx<'tcx>, ) -> InterpResult<'tcx, Result<usize>>

Reads as much as possible into the given buffer, and returns the number of bytes read.

source

fn write<'tcx>( &self, _self_ref: &FileDescriptionRef, _communicate_allowed: bool, _bytes: &[u8], _ecx: &mut MiriInterpCx<'tcx>, ) -> InterpResult<'tcx, Result<usize>>

Writes as much as possible from the given buffer, and returns the number of bytes written.

source

fn pread<'tcx>( &self, _communicate_allowed: bool, _bytes: &mut [u8], _offset: u64, _ecx: &mut MiriInterpCx<'tcx>, ) -> InterpResult<'tcx, Result<usize>>

Reads as much as possible into the given buffer from a given offset, and returns the number of bytes read.

source

fn pwrite<'tcx>( &self, _communicate_allowed: bool, _bytes: &[u8], _offset: u64, _ecx: &mut MiriInterpCx<'tcx>, ) -> InterpResult<'tcx, Result<usize>>

Writes as much as possible from the given buffer starting at a given offset, and returns the number of bytes written.

source

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.

source

fn close<'tcx>( self: Box<Self>, _communicate_allowed: bool, _ecx: &mut MiriInterpCx<'tcx>, ) -> InterpResult<'tcx, Result<()>>

source

fn flock<'tcx>( &self, _communicate_allowed: bool, _op: FlockOp, ) -> InterpResult<'tcx, Result<()>>

source

fn is_tty(&self, _communicate_allowed: bool) -> bool

source

fn get_epoll_ready_events<'tcx>(&self) -> InterpResult<'tcx, EpollReadyEvents>

Check the readiness of file description.

Implementations§

source§

impl dyn FileDescription

source

pub fn downcast<T: Any>(&self) -> Option<&T>

Implementations on Foreign Types§

source§

impl FileDescription for Stderr

source§

fn name(&self) -> &'static str

source§

fn write<'tcx>( &self, _self_ref: &FileDescriptionRef, _communicate_allowed: bool, bytes: &[u8], _ecx: &mut MiriInterpCx<'tcx>, ) -> InterpResult<'tcx, Result<usize>>

source§

fn is_tty(&self, communicate_allowed: bool) -> bool

source§

impl FileDescription for Stdin

source§

fn name(&self) -> &'static str

source§

fn read<'tcx>( &self, _self_ref: &FileDescriptionRef, communicate_allowed: bool, bytes: &mut [u8], _ecx: &mut MiriInterpCx<'tcx>, ) -> InterpResult<'tcx, Result<usize>>

source§

fn is_tty(&self, communicate_allowed: bool) -> bool

source§

impl FileDescription for Stdout

source§

fn name(&self) -> &'static str

source§

fn write<'tcx>( &self, _self_ref: &FileDescriptionRef, _communicate_allowed: bool, bytes: &[u8], _ecx: &mut MiriInterpCx<'tcx>, ) -> InterpResult<'tcx, Result<usize>>

source§

fn is_tty(&self, communicate_allowed: bool) -> bool

Implementors§