Trait flatgeobuf::FallibleStreamingIterator
source · [−]pub trait FallibleStreamingIterator {
type Item: ?Sized;
type Error;
Show 21 methods
fn advance(&mut self) -> Result<(), Self::Error>;
fn get(&self) -> Option<&Self::Item>;
fn next(&mut self) -> Result<Option<&Self::Item>, Self::Error> { ... }
fn size_hint(&self) -> (usize, Option<usize>) { ... }
fn all<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,
{ ... }
fn by_ref(&mut self) -> &mut Self { ... }
fn count(self) -> Result<usize, Self::Error> { ... }
fn filter<F>(self, f: F) -> Filter<Self, F>
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,
{ ... }
fn for_each<F>(self, f: F) -> Result<(), Self::Error>
where
F: FnMut(&Self::Item),
{ ... }
fn fuse(self) -> Fuse<Self> { ... }
fn map<F, B>(self, f: F) -> Map<Self, F, B>
where
F: FnMut(&Self::Item) -> B,
{ ... }
fn map_ref<F, B>(self, f: F) -> MapRef<Self, F>
where
F: Fn(&Self::Item) -> &B,
B: ?Sized,
{ ... }
fn map_err<F, B>(self, f: F) -> MapErr<Self, F>
where
F: Fn(Self::Error) -> B,
{ ... }
fn nth(&mut self, n: usize) -> Result<Option<&Self::Item>, Self::Error> { ... }
fn position<F>(&mut self, f: F) -> Result<Option<usize>, Self::Error>
where
F: FnMut(&Self::Item) -> bool,
{ ... }
fn skip(self, n: usize) -> Skip<Self> { ... }
fn skip_while<F>(self, f: F) -> SkipWhile<Self, F>
where
F: FnMut(&Self::Item) -> bool,
{ ... }
fn take(self, n: usize) -> Take<Self> { ... }
fn take_while<F>(self, f: F) -> TakeWhile<Self, F>
where
F: FnMut(&Self::Item) -> bool,
{ ... }
}
Expand description
A fallible, streaming iterator.
Required Associated Types
Required Methods
Advances the iterator to the next position.
Iterators start just before the first item, so this method should be called before get
when iterating.
The behavior of calling this method after get
has returned None
, or after this method
has returned an error is unspecified.
Provided Methods
Advances the iterator, returning the next element.
The default implementation simply calls advance
followed by get
.
Returns bounds on the number of remaining elements in the iterator.
Determines if all elements of the iterator satisfy a predicate.
Determines if any elements of the iterator satisfy a predicate.
Borrows an iterator, rather than consuming it.
This is useful to allow the application of iterator adaptors while still retaining ownership of the original adaptor.
Returns the number of remaining elements in the iterator.
Returns an iterator which filters elements by a predicate.
Returns the first element of the iterator which satisfies a predicate.
Calls a closure on each element of an iterator.
Returns an iterator which is well-behaved at the beginning and end of iteration.
Returns an iterator which applies a transform to elements.
Returns an iterator which applies a transform to elements.
Unlike map
, the the closure provided to this method returns a reference into the original
value.
Returns an iterator that applies a transform to errors.
Returns the nth
element of the iterator.
Returns the position of the first element matching a predicate.
Returns an iterator which skips the first sequence of elements matching a predicate.
Returns an iterator which only returns the first n
elements.
Implementations on Foreign Types
sourceimpl<'a, I, T, E> FallibleStreamingIterator for Convert<'a, I, T> where
I: Iterator<Item = Result<&'a T, E>>,
impl<'a, I, T, E> FallibleStreamingIterator for Convert<'a, I, T> where
I: Iterator<Item = Result<&'a T, E>>,
sourceimpl<I, F, B> FallibleStreamingIterator for Map<I, F, B> where
I: FallibleStreamingIterator,
F: FnMut(&<I as FallibleStreamingIterator>::Item) -> B,
impl<I, F, B> FallibleStreamingIterator for Map<I, F, B> where
I: FallibleStreamingIterator,
F: FnMut(&<I as FallibleStreamingIterator>::Item) -> B,
sourceimpl<I, F> FallibleStreamingIterator for TakeWhile<I, F> where
I: FallibleStreamingIterator,
F: FnMut(&<I as FallibleStreamingIterator>::Item) -> bool,
impl<I, F> FallibleStreamingIterator for TakeWhile<I, F> where
I: FallibleStreamingIterator,
F: FnMut(&<I as FallibleStreamingIterator>::Item) -> bool,
type Item = <I as FallibleStreamingIterator>::Item
type Error = <I as FallibleStreamingIterator>::Error
fn advance(&mut self) -> Result<(), <I as FallibleStreamingIterator>::Error>
fn get(&self) -> Option<&<I as FallibleStreamingIterator>::Item>
fn size_hint(&self) -> (usize, Option<usize>)
sourceimpl<T, E> FallibleStreamingIterator for Empty<T, E>
impl<T, E> FallibleStreamingIterator for Empty<T, E>
sourceimpl<I, F, B> FallibleStreamingIterator for MapRef<I, F> where
I: FallibleStreamingIterator,
F: Fn(&<I as FallibleStreamingIterator>::Item) -> &B,
B: ?Sized,
impl<I, F, B> FallibleStreamingIterator for MapRef<I, F> where
I: FallibleStreamingIterator,
F: Fn(&<I as FallibleStreamingIterator>::Item) -> &B,
B: ?Sized,
sourceimpl<'a, I> FallibleStreamingIterator for &'a mut I where
I: FallibleStreamingIterator + ?Sized,
impl<'a, I> FallibleStreamingIterator for &'a mut I where
I: FallibleStreamingIterator + ?Sized,
type Item = <I as FallibleStreamingIterator>::Item
type Error = <I as FallibleStreamingIterator>::Error
fn advance(&mut self) -> Result<(), <I as FallibleStreamingIterator>::Error>
fn get(&self) -> Option<&<I as FallibleStreamingIterator>::Item>
fn size_hint(&self) -> (usize, Option<usize>)
fn next(
&mut self
) -> Result<Option<&<I as FallibleStreamingIterator>::Item>, <I as FallibleStreamingIterator>::Error>
sourceimpl<I> FallibleStreamingIterator for Skip<I> where
I: FallibleStreamingIterator,
impl<I> FallibleStreamingIterator for Skip<I> where
I: FallibleStreamingIterator,
type Item = <I as FallibleStreamingIterator>::Item
type Error = <I as FallibleStreamingIterator>::Error
fn advance(&mut self) -> Result<(), <I as FallibleStreamingIterator>::Error>
fn get(&self) -> Option<&<I as FallibleStreamingIterator>::Item>
fn size_hint(&self) -> (usize, Option<usize>)
sourceimpl<I> FallibleStreamingIterator for Take<I> where
I: FallibleStreamingIterator,
impl<I> FallibleStreamingIterator for Take<I> where
I: FallibleStreamingIterator,
type Item = <I as FallibleStreamingIterator>::Item
type Error = <I as FallibleStreamingIterator>::Error
fn advance(&mut self) -> Result<(), <I as FallibleStreamingIterator>::Error>
fn get(&self) -> Option<&<I as FallibleStreamingIterator>::Item>
fn size_hint(&self) -> (usize, Option<usize>)
sourceimpl<I, F> FallibleStreamingIterator for Filter<I, F> where
I: FallibleStreamingIterator,
F: FnMut(&<I as FallibleStreamingIterator>::Item) -> bool,
impl<I, F> FallibleStreamingIterator for Filter<I, F> where
I: FallibleStreamingIterator,
F: FnMut(&<I as FallibleStreamingIterator>::Item) -> bool,
type Item = <I as FallibleStreamingIterator>::Item
type Error = <I as FallibleStreamingIterator>::Error
fn advance(&mut self) -> Result<(), <I as FallibleStreamingIterator>::Error>
fn get(&self) -> Option<&<I as FallibleStreamingIterator>::Item>
fn size_hint(&self) -> (usize, Option<usize>)
sourceimpl<I, F> FallibleStreamingIterator for SkipWhile<I, F> where
I: FallibleStreamingIterator,
F: FnMut(&<I as FallibleStreamingIterator>::Item) -> bool,
impl<I, F> FallibleStreamingIterator for SkipWhile<I, F> where
I: FallibleStreamingIterator,
F: FnMut(&<I as FallibleStreamingIterator>::Item) -> bool,
type Item = <I as FallibleStreamingIterator>::Item
type Error = <I as FallibleStreamingIterator>::Error
fn advance(&mut self) -> Result<(), <I as FallibleStreamingIterator>::Error>
fn get(&self) -> Option<&<I as FallibleStreamingIterator>::Item>
fn size_hint(&self) -> (usize, Option<usize>)
sourceimpl<I, F, B> FallibleStreamingIterator for MapErr<I, F> where
I: FallibleStreamingIterator,
F: Fn(<I as FallibleStreamingIterator>::Error) -> B,
impl<I, F, B> FallibleStreamingIterator for MapErr<I, F> where
I: FallibleStreamingIterator,
F: Fn(<I as FallibleStreamingIterator>::Error) -> B,
type Item = <I as FallibleStreamingIterator>::Item
type Error = B
fn advance(&mut self) -> Result<(), B>
fn get(&self) -> Option<&<I as FallibleStreamingIterator>::Item>
fn next(&mut self) -> Result<Option<&<I as FallibleStreamingIterator>::Item>, B>
fn size_hint(&self) -> (usize, Option<usize>)
sourceimpl<I> FallibleStreamingIterator for Fuse<I> where
I: FallibleStreamingIterator,
impl<I> FallibleStreamingIterator for Fuse<I> where
I: FallibleStreamingIterator,
type Item = <I as FallibleStreamingIterator>::Item
type Error = <I as FallibleStreamingIterator>::Error
fn advance(&mut self) -> Result<(), <I as FallibleStreamingIterator>::Error>
fn get(&self) -> Option<&<I as FallibleStreamingIterator>::Item>
fn size_hint(&self) -> (usize, Option<usize>)
fn next(
&mut self
) -> Result<Option<&<I as FallibleStreamingIterator>::Item>, <I as FallibleStreamingIterator>::Error>
Implementors
sourceimpl<'a, R: Read + Seek> FallibleStreamingIterator for FgbReader<'a, R, FeaturesSelectedSeek>
impl<'a, R: Read + Seek> FallibleStreamingIterator for FgbReader<'a, R, FeaturesSelectedSeek>
FallibleStreamingIterator
differs from the standard library’s Iterator
in two ways:
- each call to
next
can fail. - returned
FgbFeature
is valid untilnext
is called again orFgbReader
is reset or finalized.
While these iterators cannot be used with Rust for
loops, while let
loops offer a similar level of ergonomics:
use flatgeobuf::*;
while let Some(feature) = fgb.next()? {
let props = feature.properties()?;
println!("{}", props["name"]);
}
type Error = GeozeroError
type Item = FgbFeature
sourceimpl<'a, R: Read> FallibleStreamingIterator for FgbReader<'a, R, FeaturesSelected>
impl<'a, R: Read> FallibleStreamingIterator for FgbReader<'a, R, FeaturesSelected>
FallibleStreamingIterator
differs from the standard library’s Iterator
in two ways:
- each call to
next
can fail. - returned
FgbFeature
is valid untilnext
is called again orFgbReader
is reset or finalized.
While these iterators cannot be used with Rust for
loops, while let
loops offer a similar level of ergonomics:
use flatgeobuf::*;
while let Some(feature) = fgb.next()? {
let props = feature.properties()?;
println!("{}", props["name"]);
}