pub struct SpillSource { /* private fields */ }Expand description
A seekable source produced by draining a forward-only one.
Implementations§
Source§impl SpillSource
impl SpillSource
Sourcepub fn materialize(src: Box<dyn Source>, policy: &SpillPolicy) -> Result<Self>
pub fn materialize(src: Box<dyn Source>, policy: &SpillPolicy) -> Result<Self>
Drains src into a seekable backing store, eagerly.
Eager rather than lazy: a container that asked for seek is about to read the trailing index, so it will need the whole stream regardless, and the eager path has no partially-materialized states to get wrong.
Sourcepub fn materialize_from<R: Read + ?Sized>(
src: &mut R,
policy: &SpillPolicy,
) -> Result<Self>
pub fn materialize_from<R: Read + ?Sized>( src: &mut R, policy: &SpillPolicy, ) -> Result<Self>
Self::materialize from any reader, borrowed: for a caller whose
bytes are not a Source — an archive entry’s payload borrows its
archive, so it can be neither boxed as 'static nor sent. stuffr convert buffers an entry of unknown size through this, under the same
policy. The limits are SpillWriter’s, which this drives.
Sourcepub fn spilled_to_disk(&self) -> bool
pub fn spilled_to_disk(&self) -> bool
Whether the spool escalated past the memory cap. Surfaced by stuffr info.
Trait Implementations§
Source§impl Debug for SpillSource
impl Debug for SpillSource
Source§impl Read for SpillSource
impl Read for SpillSource
Source§fn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
Pull some bytes from this source into the specified buffer, returning
how many bytes were read. Read more
1.36.0 · Source§fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
Like
read, except that it reads into a slice of buffers. Read moreSource§fn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector)1.0.0 · Source§fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
Reads all bytes until EOF in this source, placing them into
buf. Read more1.0.0 · Source§fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
Reads all bytes until EOF in this source, appending them to
buf. Read more1.6.0 · Source§fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
Reads the exact number of bytes required to fill
buf. Read moreSource§fn read_buf(&mut self, buf: BorrowedCursor<'_, u8>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_, u8>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf)Pull some bytes from this source into the specified buffer. Read more
Source§fn read_buf_exact(
&mut self,
cursor: BorrowedCursor<'_, u8>,
) -> Result<(), Error>
fn read_buf_exact( &mut self, cursor: BorrowedCursor<'_, u8>, ) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf)Reads the exact number of bytes required to fill
cursor. Read more1.0.0 · Source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Creates a “by reference” adapter for this instance of
Read. Read more1.0.0 · Source§fn chain<R>(self, next: R) -> Chain<Self, R> ⓘ
fn chain<R>(self, next: R) -> Chain<Self, R> ⓘ
Creates an adapter which will chain this stream with another. Read more
1.0.0 · Source§fn take(self, limit: u64) -> Take<Self> ⓘwhere
Self: Sized,
fn take(self, limit: u64) -> Take<Self> ⓘwhere
Self: Sized,
Creates an adapter which will read at most
limit bytes from it. Read moreSource§fn read_array<const N: usize>(&mut self) -> Result<[u8; N], Error>where
Self: Sized,
fn read_array<const N: usize>(&mut self) -> Result<[u8; N], Error>where
Self: Sized,
🔬This is a nightly-only experimental API. (
read_array)Read and return a fixed array of bytes from this source. Read more
Auto Trait Implementations§
impl Freeze for SpillSource
impl RefUnwindSafe for SpillSource
impl Send for SpillSource
impl Sync for SpillSource
impl Unpin for SpillSource
impl UnsafeUnpin for SpillSource
impl UnwindSafe for SpillSource
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