Trait positioned_io::ReadAt
source · pub trait ReadAt {
// Required method
fn read_at(&self, pos: u64, buf: &mut [u8]) -> Result<usize>;
// Provided method
fn read_exact_at(&self, pos: u64, buf: &mut [u8]) -> Result<()> { ... }
}
Expand description
Trait for reading bytes at an offset.
Implementations should be able to read bytes without changing any sort of
read position. Self should not change at all. Buffering reads is unlikely
to be useful, since each time read_at()
is called, the position may be
completely different.
Examples
Read the fifth 512-byte sector of a file:
use std::fs::File;
use positioned_io::ReadAt;
// note that file does not need to be mut
let file = File::open("tests/pi.txt")?;
// read up to 512 bytes
let mut buf = [0; 512];
let bytes_read = file.read_at(2048, &mut buf)?;
Required Methods§
Provided Methods§
sourcefn read_exact_at(&self, pos: u64, buf: &mut [u8]) -> Result<()>
fn read_exact_at(&self, pos: u64, buf: &mut [u8]) -> Result<()>
Reads the exact number of bytes required to fill buf
from an offset.
Errors if the “end of file” is encountered before filling the buffer.
See Read::read_exact()
for details.