Struct weezl::decode::IntoStream
source · pub struct IntoStream<'d, W> {
decoder: &'d mut Decoder,
writer: W,
buffer: Option<StreamBuf<'d>>,
default_size: usize,
}
Expand description
A decoding stream sink.
See Decoder::into_stream
on how to create this type.
Fields§
§decoder: &'d mut Decoder
§writer: W
§buffer: Option<StreamBuf<'d>>
§default_size: usize
Implementations§
source§impl<'d, W: Write> IntoStream<'d, W>
impl<'d, W: Write> IntoStream<'d, W>
sourcepub fn decode(&mut self, read: impl BufRead) -> StreamResult
pub fn decode(&mut self, read: impl BufRead) -> StreamResult
Decode data from a reader.
This will read data until the stream is empty or an end marker is reached.
sourcepub fn decode_all(self, read: impl BufRead) -> StreamResult
pub fn decode_all(self, read: impl BufRead) -> StreamResult
Decode data from a reader, requiring an end marker.
sourcepub fn set_buffer_size(&mut self, size: usize)
pub fn set_buffer_size(&mut self, size: usize)
Set the size of the intermediate decode buffer.
A buffer of this size is allocated to hold one part of the decoded stream when no buffer is
available and any decoding method is called. No buffer is allocated if set_buffer
has
been called. The buffer is reused.
§Panics
This method panics if size
is 0
.
sourcepub fn set_buffer(&mut self, buffer: &'d mut [u8])
pub fn set_buffer(&mut self, buffer: &'d mut [u8])
Use a particular buffer as an intermediate decode buffer.
Calling this sets or replaces the buffer. When a buffer has been set then it is used
instead of dynamically allocating a buffer. Note that the size of the buffer is critical
for efficient decoding. Some optimization techniques require the buffer to hold one or more
previous decoded words. There is also additional overhead from write
calls each time the
buffer has been filled.
§Panics
This method panics if the buffer
is empty.