pub struct BytesReader(pub Arc<[u8]>);Expand description
A RangeReader over owned, shared bytes (a whole file image held in
memory — the resident opens of a 0x06 file go through the lazy machinery
over one of these).
Tuple Fields§
§0: Arc<[u8]>Trait Implementations§
Source§impl RangeReader for BytesReader
impl RangeReader for BytesReader
Source§fn read_at(&self, offset: u64, len: u64) -> Result<Vec<u8>, Error>
fn read_at(&self, offset: u64, len: u64) -> Result<Vec<u8>, Error>
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>>, Error>
fn read_many(&self, ranges: &[(u64, u64)]) -> Result<Vec<Vec<u8>>, Error>
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 BytesReader
impl RefUnwindSafe for BytesReader
impl Send for BytesReader
impl Sync for BytesReader
impl Unpin for BytesReader
impl UnsafeUnpin for BytesReader
impl UnwindSafe for BytesReader
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