pub struct SparseReader { /* private fields */ }Expand description
A reader holding only some ranges of a file in memory (the borrowed-reader
opens of a 0x06 file read what they need into one of these).
Implementations§
Trait Implementations§
Source§impl RangeReader for SparseReader
impl RangeReader for SparseReader
Source§fn read_at(&self, offset: u64, len: u64) -> Result<Vec<u8>>
fn read_at(&self, offset: u64, len: u64) -> Result<Vec<u8>>
Read
len bytes starting at offset. Implementations should error on
an out-of-bounds range rather than truncating.Source§fn read_many(&self, ranges: &[(u64, u64)]) -> Result<Vec<Vec<u8>>>
fn read_many(&self, ranges: &[(u64, u64)]) -> Result<Vec<Vec<u8>>>
Read several
(offset, len) ranges, returning each range’s bytes in
request order. These ranges are independent, so a reader whose backing
store is high-latency but parallelizable (an HTTP client) overrides this
to issue the reads concurrently — turning N round trips into ~N/P. The
default fetches them sequentially. Any range failing fails the batch.Source§fn concurrency(&self) -> usize
fn concurrency(&self) -> usize
How many ranges this reader can usefully have in flight at once — the
planner’s hint for probe-vs-scan and batch-size decisions (a phone’s
serial sync-XHR reader reports 1; the CLI’s threaded HTTP client and the
browser’s concurrent-fetch variants report their fan-out). Purely
advisory: correctness never depends on it. Defaults to 1 (sequential).
Auto Trait Implementations§
impl Freeze for SparseReader
impl RefUnwindSafe for SparseReader
impl Send for SparseReader
impl Sync for SparseReader
impl Unpin for SparseReader
impl UnsafeUnpin for SparseReader
impl UnwindSafe for SparseReader
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more