pub struct Decompressor<R> where
R: Read, { /* private fields */ }
io_parquet
only.Expand description
Decompressor that allows re-using the page buffer of PageIterator
.
Implementation
The implementation depends on whether a page is compressed or not.
PageIterator(a)
,CompressedPage(b)
,Decompressor(c)
,DecompressedPage(d)
un-compressed pages:
page iter:
a
is swapped withb
decompress iter:b
is swapped withd
,b
is swapped witha
therefore:
PageIterator
has its buffer backDecompressor
’s buffer is un-usedDecompressedPage
has the same data asCompressedPage
had
compressed pages:
page iter:
a
is swapped withb
decompress iter:
b
is decompressed intoc
b
is swapped witha
c
is moved tod
- (next iteration):
d
is moved toc
therefore, while the page is available:
PageIterator
has its buffer backDecompressor
’s buffer emptyDecompressedPage
has the decompressed buffer after the page is used:PageIterator
has its buffer backDecompressor
has its buffer backDecompressedPage
has an empty buffer
Implementations
sourceimpl<R> Decompressor<R> where
R: Read,
impl<R> Decompressor<R> where
R: Read,
sourcepub fn new(iter: PageIterator<R>, buffer: Vec<u8, Global>) -> Decompressor<R>
pub fn new(iter: PageIterator<R>, buffer: Vec<u8, Global>) -> Decompressor<R>
Creates a new Decompressor
.
Trait Implementations
sourceimpl<R> FallibleStreamingIterator for Decompressor<R> where
R: Read,
impl<R> FallibleStreamingIterator for Decompressor<R> where
R: Read,
type Error = ParquetError
type Error = ParquetError
The error type of iteration.
sourcefn advance(&mut self) -> Result<(), ParquetError>
fn advance(&mut self) -> Result<(), ParquetError>
Advances the iterator to the next position. Read more
sourcefn get(&self) -> Option<&<Decompressor<R> as FallibleStreamingIterator>::Item>
fn get(&self) -> Option<&<Decompressor<R> as FallibleStreamingIterator>::Item>
Returns the current element. Read more
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 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 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<R> !RefUnwindSafe for Decompressor<R>
impl<R> Send for Decompressor<R> where
R: Send,
impl<R> Sync for Decompressor<R> where
R: Sync,
impl<R> Unpin for Decompressor<R> where
R: Unpin,
impl<R> !UnwindSafe for Decompressor<R>
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