Struct streaming_decompression::Decompressor
source · [−]pub struct Decompressor<I, O, F, E, II> where
I: Compressed,
O: Decompressed,
E: Error,
II: Iterator<Item = Result<I, E>>,
F: Fn(I, &mut Vec<u8>) -> Result<O, E>, { /* private fields */ }
Expand description
A FallibleStreamingIterator
that decompresses items of type I
into type O
via an
internal Vec<u8>
that is re-used across items.
The purpose of this streaming iterator is to be able to decompress parts of an item I
into O
.
Implementations
sourceimpl<I, O, F, E, II> Decompressor<I, O, F, E, II> where
I: Compressed,
O: Decompressed,
E: Error,
II: Iterator<Item = Result<I, E>>,
F: Fn(I, &mut Vec<u8>) -> Result<O, E>,
impl<I, O, F, E, II> Decompressor<I, O, F, E, II> where
I: Compressed,
O: Decompressed,
E: Error,
II: Iterator<Item = Result<I, E>>,
F: Fn(I, &mut Vec<u8>) -> Result<O, E>,
sourcepub fn new(iter: II, buffer: Vec<u8>, f: F) -> Self
pub fn new(iter: II, buffer: Vec<u8>, f: F) -> Self
Returns a new Decompressor
.
sourcepub fn into_inner(self) -> Vec<u8>
pub fn into_inner(self) -> Vec<u8>
Returns its internal buffer, consuming itself.
Trait Implementations
sourceimpl<I, O, F, E, II> FallibleStreamingIterator for Decompressor<I, O, F, E, II> where
I: Compressed,
O: Decompressed,
E: Error,
II: Iterator<Item = Result<I, E>>,
F: Fn(I, &mut Vec<u8>) -> Result<O, E>,
impl<I, O, F, E, II> FallibleStreamingIterator for Decompressor<I, O, F, E, II> where
I: Compressed,
O: Decompressed,
E: Error,
II: Iterator<Item = Result<I, E>>,
F: Fn(I, &mut Vec<u8>) -> Result<O, E>,
type Item = O
type Item = O
The type being iterated over.
type Error = E
type Error = E
The error type of iteration.
sourcefn size_hint(&self) -> (usize, Option<usize>)
fn size_hint(&self) -> (usize, Option<usize>)
Returns bounds on the number of remaining elements in the iterator.
sourcefn next(&mut self) -> Result<Option<&Self::Item>, Self::Error>
fn next(&mut self) -> Result<Option<&Self::Item>, Self::Error>
Advances the iterator, returning the next element. Read more
sourcefn all<F>(&mut self, f: F) -> Result<bool, Self::Error> where
F: FnMut(&Self::Item) -> bool,
fn all<F>(&mut self, f: F) -> Result<bool, Self::Error> where
F: FnMut(&Self::Item) -> bool,
Determines if all elements of the iterator satisfy a predicate.
sourcefn any<F>(&mut self, f: F) -> Result<bool, Self::Error> where
F: FnMut(&Self::Item) -> bool,
fn any<F>(&mut self, f: F) -> Result<bool, Self::Error> where
F: FnMut(&Self::Item) -> bool,
Determines if any elements of the iterator satisfy a predicate.
sourcefn count(self) -> Result<usize, Self::Error>
fn count(self) -> Result<usize, Self::Error>
Returns the number of remaining elements in the iterator.
sourcefn filter<F>(self, f: F) -> Filter<Self, F> where
F: FnMut(&Self::Item) -> bool,
fn filter<F>(self, f: F) -> Filter<Self, F> where
F: FnMut(&Self::Item) -> bool,
Returns an iterator which filters elements by a predicate.
sourcefn find<F>(&mut self, f: F) -> Result<Option<&Self::Item>, Self::Error> where
F: FnMut(&Self::Item) -> bool,
fn find<F>(&mut self, f: F) -> Result<Option<&Self::Item>, Self::Error> where
F: FnMut(&Self::Item) -> bool,
Returns the first element of the iterator which satisfies a predicate.
sourcefn for_each<F>(self, f: F) -> Result<(), Self::Error> where
F: FnMut(&Self::Item),
fn for_each<F>(self, f: F) -> Result<(), Self::Error> where
F: FnMut(&Self::Item),
Calls a closure on each element of an iterator.
sourcefn fuse(self) -> Fuse<Self>
fn fuse(self) -> Fuse<Self>
Returns an iterator which is well-behaved at the beginning and end of iteration.
sourcefn map<F, B>(self, f: F) -> Map<Self, F, B> where
F: FnMut(&Self::Item) -> B,
fn map<F, B>(self, f: F) -> Map<Self, F, B> where
F: FnMut(&Self::Item) -> B,
Returns an iterator which applies a transform to elements.
sourcefn map_ref<F, B>(self, f: F) -> MapRef<Self, F> where
F: Fn(&Self::Item) -> &B,
B: ?Sized,
fn map_ref<F, B>(self, f: F) -> MapRef<Self, F> where
F: Fn(&Self::Item) -> &B,
B: ?Sized,
Returns an iterator which applies a transform to elements. Read more
sourcefn map_err<F, B>(self, f: F) -> MapErr<Self, F> where
F: Fn(Self::Error) -> B,
fn map_err<F, B>(self, f: F) -> MapErr<Self, F> where
F: Fn(Self::Error) -> B,
Returns an iterator that applies a transform to errors.
sourcefn nth(&mut self, n: usize) -> Result<Option<&Self::Item>, Self::Error>
fn nth(&mut self, n: usize) -> Result<Option<&Self::Item>, Self::Error>
Returns the nth
element of the iterator.
sourcefn position<F>(&mut self, f: F) -> Result<Option<usize>, Self::Error> where
F: FnMut(&Self::Item) -> bool,
fn position<F>(&mut self, f: F) -> Result<Option<usize>, Self::Error> where
F: FnMut(&Self::Item) -> bool,
Returns the position of the first element matching a predicate.
sourcefn skip_while<F>(self, f: F) -> SkipWhile<Self, F> where
F: FnMut(&Self::Item) -> bool,
fn skip_while<F>(self, f: F) -> SkipWhile<Self, F> where
F: FnMut(&Self::Item) -> bool,
Returns an iterator which skips the first sequence of elements matching a predicate.
Auto Trait Implementations
impl<I, O, F, E, II> RefUnwindSafe for Decompressor<I, O, F, E, II> where
F: RefUnwindSafe,
II: RefUnwindSafe,
O: RefUnwindSafe,
impl<I, O, F, E, II> Send for Decompressor<I, O, F, E, II> where
F: Send,
II: Send,
O: Send,
impl<I, O, F, E, II> Sync for Decompressor<I, O, F, E, II> where
F: Sync,
II: Sync,
O: Sync,
impl<I, O, F, E, II> Unpin for Decompressor<I, O, F, E, II> where
F: Unpin,
II: Unpin,
O: Unpin,
impl<I, O, F, E, II> UnwindSafe for Decompressor<I, O, F, E, II> where
F: UnwindSafe,
II: UnwindSafe,
O: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more