pub fn drive_from_read_at<D, S>(
decoder: &mut D,
source: &mut S,
sink: &mut dyn DecodeRowSink,
pulse: Option<&dyn Pulse>,
opts: DriveOptions,
) -> Result<(OutputInfo, DriveStats), DriveError<D::Error, S::Error>>Expand description
Run decoder over a random-access source.
Sequential requests read forward into a driver-owned window (short
reads mark the end of the source; ReadAt::len is called only when the
decoder asks for the length). Range requests are coalesced (max_gap)
and fetched with one read_many_at per round, so
a concurrent source overlaps their round trips; later ranges of the same
round are served from the fetched buffers. A source that is already in
memory (ReadAt::as_slice) is driven without copying. The same driver
serves any ByteStepper through
ReadAtCursor.