Trait io_arrays::WriteAt

source ·
pub trait WriteAt: Array {
    // Required methods
    fn write_at(&mut self, buf: &[u8], offset: u64) -> Result<usize>;
    fn write_all_at(&mut self, buf: &[u8], offset: u64) -> Result<()>;
    fn write_vectored_at(
        &mut self,
        bufs: &[IoSlice<'_>],
        offset: u64
    ) -> Result<usize>;
    fn write_all_vectored_at(
        &mut self,
        bufs: &mut [IoSlice<'_>],
        offset: u64
    ) -> Result<()>;
    fn is_write_vectored_at(&self) -> bool;
    fn copy_from<R: ReadAt>(
        &mut self,
        offset: u64,
        input: &R,
        input_offset: u64,
        len: u64
    ) -> Result<u64>;
    fn set_len(&mut self, size: u64) -> Result<()>;
}
Expand description

A trait for writing to arrays.

This is similar to std::io::Write except all of the reading functions take an offset parameter, specifying a position in the array to read at.

Required Methods§

source

fn write_at(&mut self, buf: &[u8], offset: u64) -> Result<usize>

Writes a number of bytes starting from a given offset.

This is similar to std::os::unix::fs::FileExt::write_at, except it takes self by immutable reference since the entire side effect is I/O, and it’s supported on non-Unix platforms including Windows.

source

fn write_all_at(&mut self, buf: &[u8], offset: u64) -> Result<()>

Attempts to write an entire buffer starting from a given offset.

This is similar to std::os::unix::fs::FileExt::write_all_at, except it takes self by immutable reference since the entire side effect is I/O, and it’s supported on non-Unix platforms including Windows.

source

fn write_vectored_at( &mut self, bufs: &[IoSlice<'_>], offset: u64 ) -> Result<usize>

Is to write_vectored what write_at is to write.

source

fn write_all_vectored_at( &mut self, bufs: &mut [IoSlice<'_>], offset: u64 ) -> Result<()>

Is to write_all_vectored what write_all_at is to write_all.

source

fn is_write_vectored_at(&self) -> bool

Determines if Self has an efficient write_vectored_at implementation.

source

fn copy_from<R: ReadAt>( &mut self, offset: u64, input: &R, input_offset: u64, len: u64 ) -> Result<u64>

Copy len bytes from input at input_offset to self at offset.

source

fn set_len(&mut self, size: u64) -> Result<()>

Truncates or extends the underlying array, updating the size of this array to become size.

Implementations on Foreign Types§

source§

impl WriteAt for &mut [u8]

source§

fn write_at(&mut self, buf: &[u8], offset: u64) -> Result<usize>

source§

fn write_all_at(&mut self, buf: &[u8], offset: u64) -> Result<()>

source§

fn write_vectored_at( &mut self, bufs: &[IoSlice<'_>], offset: u64 ) -> Result<usize>

source§

fn write_all_vectored_at( &mut self, bufs: &mut [IoSlice<'_>], offset: u64 ) -> Result<()>

source§

fn is_write_vectored_at(&self) -> bool

source§

fn copy_from<R: ReadAt>( &mut self, _offset: u64, input: &R, input_offset: u64, len: u64 ) -> Result<u64>

source§

fn set_len(&mut self, _len: u64) -> Result<()>

source§

impl WriteAt for Vec<u8>

source§

fn write_at(&mut self, buf: &[u8], offset: u64) -> Result<usize>

source§

fn write_all_at(&mut self, buf: &[u8], offset: u64) -> Result<()>

source§

fn write_vectored_at( &mut self, bufs: &[IoSlice<'_>], offset: u64 ) -> Result<usize>

source§

fn write_all_vectored_at( &mut self, bufs: &mut [IoSlice<'_>], offset: u64 ) -> Result<()>

source§

fn is_write_vectored_at(&self) -> bool

source§

fn copy_from<R: ReadAt>( &mut self, offset: u64, input: &R, input_offset: u64, len: u64 ) -> Result<u64>

source§

fn set_len(&mut self, len: u64) -> Result<()>

source§

impl WriteAt for File

source§

fn write_at(&mut self, buf: &[u8], offset: u64) -> Result<usize>

source§

fn write_all_at(&mut self, buf: &[u8], offset: u64) -> Result<()>

source§

fn write_vectored_at( &mut self, bufs: &[IoSlice<'_>], offset: u64 ) -> Result<usize>

source§

fn write_all_vectored_at( &mut self, bufs: &mut [IoSlice<'_>], offset: u64 ) -> Result<()>

source§

fn is_write_vectored_at(&self) -> bool

source§

fn copy_from<R: ReadAt>( &mut self, offset: u64, input: &R, input_offset: u64, len: u64 ) -> Result<u64>

source§

fn set_len(&mut self, size: u64) -> Result<()>

source§

impl WriteAt for &mut Vec<u8>

source§

fn write_at(&mut self, buf: &[u8], offset: u64) -> Result<usize>

source§

fn write_all_at(&mut self, buf: &[u8], offset: u64) -> Result<()>

source§

fn write_vectored_at( &mut self, bufs: &[IoSlice<'_>], offset: u64 ) -> Result<usize>

source§

fn write_all_vectored_at( &mut self, bufs: &mut [IoSlice<'_>], offset: u64 ) -> Result<()>

source§

fn is_write_vectored_at(&self) -> bool

source§

fn copy_from<R: ReadAt>( &mut self, offset: u64, input: &R, input_offset: u64, len: u64 ) -> Result<u64>

source§

fn set_len(&mut self, len: u64) -> Result<()>

source§

impl WriteAt for [u8]

source§

fn write_at(&mut self, buf: &[u8], offset: u64) -> Result<usize>

source§

fn write_all_at(&mut self, buf: &[u8], offset: u64) -> Result<()>

source§

fn write_vectored_at( &mut self, bufs: &[IoSlice<'_>], offset: u64 ) -> Result<usize>

source§

fn write_all_vectored_at( &mut self, bufs: &mut [IoSlice<'_>], offset: u64 ) -> Result<()>

source§

fn is_write_vectored_at(&self) -> bool

source§

fn copy_from<R: ReadAt>( &mut self, _offset: u64, input: &R, input_offset: u64, len: u64 ) -> Result<u64>

source§

fn set_len(&mut self, _len: u64) -> Result<()>

source§

impl WriteAt for &File

source§

fn write_at(&mut self, buf: &[u8], offset: u64) -> Result<usize>

source§

fn write_all_at(&mut self, buf: &[u8], offset: u64) -> Result<()>

source§

fn write_vectored_at( &mut self, bufs: &[IoSlice<'_>], offset: u64 ) -> Result<usize>

source§

fn write_all_vectored_at( &mut self, bufs: &mut [IoSlice<'_>], offset: u64 ) -> Result<()>

source§

fn is_write_vectored_at(&self) -> bool

source§

fn copy_from<R: ReadAt>( &mut self, offset: u64, input: &R, input_offset: u64, len: u64 ) -> Result<u64>

source§

fn set_len(&mut self, size: u64) -> Result<()>

Implementors§