pub struct SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>where
D: Direction<X, Y, Z>,
SurfaceFunc: Fn(<D as Direction<X, Y, Z>>::Input1Type, <D as Direction<X, Y, Z>>::Input2Type) -> <D as Direction<X, Y, Z>>::OutputType,{ /* private fields */ }
Expand description
Represents functions of two variables.
Examples
use plotters::prelude::*;
let drawing_area = SVGBackend::new("surface_series_xoz.svg", (640, 480)).into_drawing_area();
drawing_area.fill(&WHITE).unwrap();
let mut chart_context = ChartBuilder::on(&drawing_area)
.margin(10)
.build_cartesian_3d(-3.0..3.0f64, -3.0..3.0f64, -3.0..3.0f64)
.unwrap();
chart_context.configure_axes().draw().unwrap();
let axis_title_style = ("sans-serif", 20, &BLACK).into_text_style(&drawing_area);
chart_context.draw_series([("x", (3., -3., -3.)), ("y", (-3., 3., -3.)), ("z", (-3., -3., 3.))]
.map(|(label, position)| Text::new(label, position, &axis_title_style))).unwrap();
chart_context.draw_series(SurfaceSeries::xoz(
(-30..30).map(|v| v as f64 / 10.0),
(-30..30).map(|v| v as f64 / 10.0),
|x:f64,z:f64|(0.7 * (x * x + z * z)).cos()).style(&BLUE.mix(0.5))
).unwrap();
The code above with SurfaceSeries::xoy()
produces a surface that depends on x and y and
points in the z direction:
The code above with SurfaceSeries::xoz()
produces a surface that depends on x and z and
points in the y direction:
The code above with SurfaceSeries::yoz()
produces a surface that depends on y and z and
points in the x direction:
Implementations
sourceimpl<'a, X, Y, Z, D, SurfaceFunc> SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>where
D: Direction<X, Y, Z>,
SurfaceFunc: Fn(<D as Direction<X, Y, Z>>::Input1Type, <D as Direction<X, Y, Z>>::Input2Type) -> <D as Direction<X, Y, Z>>::OutputType,
impl<'a, X, Y, Z, D, SurfaceFunc> SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>where
D: Direction<X, Y, Z>,
SurfaceFunc: Fn(<D as Direction<X, Y, Z>>::Input1Type, <D as Direction<X, Y, Z>>::Input2Type) -> <D as Direction<X, Y, Z>>::OutputType,
sourcepub fn new<IterA, IterB>(
first_iter: IterA,
second_iter: IterB,
func: SurfaceFunc
) -> SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>ⓘNotable traits for SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>impl<'a, X, Y, Z, D, SurfaceFunc> Iterator for SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>where
D: Direction<X, Y, Z>,
<D as Direction<X, Y, Z>>::Input1Type: Clone,
<D as Direction<X, Y, Z>>::Input2Type: Clone,
SurfaceFunc: Fn(<D as Direction<X, Y, Z>>::Input1Type, <D as Direction<X, Y, Z>>::Input2Type) -> <D as Direction<X, Y, Z>>::OutputType, type Item = Polygon<(X, Y, Z)>;
where
IterA: Iterator<Item = <D as Direction<X, Y, Z>>::Input1Type>,
IterB: Iterator<Item = <D as Direction<X, Y, Z>>::Input2Type>,
pub fn new<IterA, IterB>(
first_iter: IterA,
second_iter: IterB,
func: SurfaceFunc
) -> SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>ⓘNotable traits for SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>impl<'a, X, Y, Z, D, SurfaceFunc> Iterator for SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>where
D: Direction<X, Y, Z>,
<D as Direction<X, Y, Z>>::Input1Type: Clone,
<D as Direction<X, Y, Z>>::Input2Type: Clone,
SurfaceFunc: Fn(<D as Direction<X, Y, Z>>::Input1Type, <D as Direction<X, Y, Z>>::Input2Type) -> <D as Direction<X, Y, Z>>::OutputType, type Item = Polygon<(X, Y, Z)>;
where
IterA: Iterator<Item = <D as Direction<X, Y, Z>>::Input1Type>,
IterB: Iterator<Item = <D as Direction<X, Y, Z>>::Input2Type>,
D: Direction<X, Y, Z>,
<D as Direction<X, Y, Z>>::Input1Type: Clone,
<D as Direction<X, Y, Z>>::Input2Type: Clone,
SurfaceFunc: Fn(<D as Direction<X, Y, Z>>::Input1Type, <D as Direction<X, Y, Z>>::Input2Type) -> <D as Direction<X, Y, Z>>::OutputType, type Item = Polygon<(X, Y, Z)>;
Create a new surface series, the surface orientation is determined by D
sourcepub fn style_func<F>(
self,
f: &'a F
) -> SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>ⓘNotable traits for SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>impl<'a, X, Y, Z, D, SurfaceFunc> Iterator for SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>where
D: Direction<X, Y, Z>,
<D as Direction<X, Y, Z>>::Input1Type: Clone,
<D as Direction<X, Y, Z>>::Input2Type: Clone,
SurfaceFunc: Fn(<D as Direction<X, Y, Z>>::Input1Type, <D as Direction<X, Y, Z>>::Input2Type) -> <D as Direction<X, Y, Z>>::OutputType, type Item = Polygon<(X, Y, Z)>;
where
F: Fn(&<D as Direction<X, Y, Z>>::OutputType) -> ShapeStyle,
pub fn style_func<F>(
self,
f: &'a F
) -> SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>ⓘNotable traits for SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>impl<'a, X, Y, Z, D, SurfaceFunc> Iterator for SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>where
D: Direction<X, Y, Z>,
<D as Direction<X, Y, Z>>::Input1Type: Clone,
<D as Direction<X, Y, Z>>::Input2Type: Clone,
SurfaceFunc: Fn(<D as Direction<X, Y, Z>>::Input1Type, <D as Direction<X, Y, Z>>::Input2Type) -> <D as Direction<X, Y, Z>>::OutputType, type Item = Polygon<(X, Y, Z)>;
where
F: Fn(&<D as Direction<X, Y, Z>>::OutputType) -> ShapeStyle,
D: Direction<X, Y, Z>,
<D as Direction<X, Y, Z>>::Input1Type: Clone,
<D as Direction<X, Y, Z>>::Input2Type: Clone,
SurfaceFunc: Fn(<D as Direction<X, Y, Z>>::Input1Type, <D as Direction<X, Y, Z>>::Input2Type) -> <D as Direction<X, Y, Z>>::OutputType, type Item = Polygon<(X, Y, Z)>;
Sets the style as a function of the value of the dependent coordinate of the surface.
Examples
use plotters::prelude::*;
let drawing_area = SVGBackend::new("surface_series_style_func.svg", (640, 480)).into_drawing_area();
drawing_area.fill(&WHITE).unwrap();
let mut chart_context = ChartBuilder::on(&drawing_area)
.margin(10)
.build_cartesian_3d(-3.0..3.0f64, -3.0..3.0f64, -3.0..3.0f64)
.unwrap();
chart_context.configure_axes().draw().unwrap();
let axis_title_style = ("sans-serif", 20, &BLACK).into_text_style(&drawing_area);
chart_context.draw_series([("x", (3., -3., -3.)), ("y", (-3., 3., -3.)), ("z", (-3., -3., 3.))]
.map(|(label, position)| Text::new(label, position, &axis_title_style))).unwrap();
chart_context.draw_series(SurfaceSeries::xoz(
(-30..30).map(|v| v as f64 / 10.0),
(-30..30).map(|v| v as f64 / 10.0),
|x:f64,z:f64|(0.4 * (x * x + z * z)).cos()).style_func(
&|y| HSLColor(0.6666, y + 0.5, 0.5).mix(0.8).filled()
)
).unwrap();
The resulting style varies from gray to blue according to the value of y:
sourcepub fn style<S>(self, s: S) -> SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>ⓘNotable traits for SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>impl<'a, X, Y, Z, D, SurfaceFunc> Iterator for SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>where
D: Direction<X, Y, Z>,
<D as Direction<X, Y, Z>>::Input1Type: Clone,
<D as Direction<X, Y, Z>>::Input2Type: Clone,
SurfaceFunc: Fn(<D as Direction<X, Y, Z>>::Input1Type, <D as Direction<X, Y, Z>>::Input2Type) -> <D as Direction<X, Y, Z>>::OutputType, type Item = Polygon<(X, Y, Z)>;
where
S: Into<ShapeStyle>,
pub fn style<S>(self, s: S) -> SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>ⓘNotable traits for SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>impl<'a, X, Y, Z, D, SurfaceFunc> Iterator for SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>where
D: Direction<X, Y, Z>,
<D as Direction<X, Y, Z>>::Input1Type: Clone,
<D as Direction<X, Y, Z>>::Input2Type: Clone,
SurfaceFunc: Fn(<D as Direction<X, Y, Z>>::Input1Type, <D as Direction<X, Y, Z>>::Input2Type) -> <D as Direction<X, Y, Z>>::OutputType, type Item = Polygon<(X, Y, Z)>;
where
S: Into<ShapeStyle>,
D: Direction<X, Y, Z>,
<D as Direction<X, Y, Z>>::Input1Type: Clone,
<D as Direction<X, Y, Z>>::Input2Type: Clone,
SurfaceFunc: Fn(<D as Direction<X, Y, Z>>::Input1Type, <D as Direction<X, Y, Z>>::Input2Type) -> <D as Direction<X, Y, Z>>::OutputType, type Item = Polygon<(X, Y, Z)>;
Sets the style of the plot. See SurfaceSeries
for more information and examples.
sourceimpl<'a, X, Y, Z, SurfaceFunc> SurfaceSeries<'a, X, Y, Z, XOY, SurfaceFunc>where
SurfaceFunc: Fn(<XOY as Direction<X, Y, Z>>::Input1Type, <XOY as Direction<X, Y, Z>>::Input2Type) -> <XOY as Direction<X, Y, Z>>::OutputType,
impl<'a, X, Y, Z, SurfaceFunc> SurfaceSeries<'a, X, Y, Z, XOY, SurfaceFunc>where
SurfaceFunc: Fn(<XOY as Direction<X, Y, Z>>::Input1Type, <XOY as Direction<X, Y, Z>>::Input2Type) -> <XOY as Direction<X, Y, Z>>::OutputType,
sourcepub fn xoy<IterA, IterB>(
a: IterA,
b: IterB,
f: SurfaceFunc
) -> SurfaceSeries<'a, X, Y, Z, XOY, SurfaceFunc>ⓘNotable traits for SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>impl<'a, X, Y, Z, D, SurfaceFunc> Iterator for SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>where
D: Direction<X, Y, Z>,
<D as Direction<X, Y, Z>>::Input1Type: Clone,
<D as Direction<X, Y, Z>>::Input2Type: Clone,
SurfaceFunc: Fn(<D as Direction<X, Y, Z>>::Input1Type, <D as Direction<X, Y, Z>>::Input2Type) -> <D as Direction<X, Y, Z>>::OutputType, type Item = Polygon<(X, Y, Z)>;
where
IterA: Iterator<Item = <XOY as Direction<X, Y, Z>>::Input1Type>,
IterB: Iterator<Item = <XOY as Direction<X, Y, Z>>::Input2Type>,
pub fn xoy<IterA, IterB>(
a: IterA,
b: IterB,
f: SurfaceFunc
) -> SurfaceSeries<'a, X, Y, Z, XOY, SurfaceFunc>ⓘNotable traits for SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>impl<'a, X, Y, Z, D, SurfaceFunc> Iterator for SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>where
D: Direction<X, Y, Z>,
<D as Direction<X, Y, Z>>::Input1Type: Clone,
<D as Direction<X, Y, Z>>::Input2Type: Clone,
SurfaceFunc: Fn(<D as Direction<X, Y, Z>>::Input1Type, <D as Direction<X, Y, Z>>::Input2Type) -> <D as Direction<X, Y, Z>>::OutputType, type Item = Polygon<(X, Y, Z)>;
where
IterA: Iterator<Item = <XOY as Direction<X, Y, Z>>::Input1Type>,
IterB: Iterator<Item = <XOY as Direction<X, Y, Z>>::Input2Type>,
D: Direction<X, Y, Z>,
<D as Direction<X, Y, Z>>::Input1Type: Clone,
<D as Direction<X, Y, Z>>::Input2Type: Clone,
SurfaceFunc: Fn(<D as Direction<X, Y, Z>>::Input1Type, <D as Direction<X, Y, Z>>::Input2Type) -> <D as Direction<X, Y, Z>>::OutputType, type Item = Polygon<(X, Y, Z)>;
Implements the constructor. See SurfaceSeries
for more information and examples.
sourceimpl<'a, X, Y, Z, SurfaceFunc> SurfaceSeries<'a, X, Y, Z, XOZ, SurfaceFunc>where
SurfaceFunc: Fn(<XOZ as Direction<X, Y, Z>>::Input1Type, <XOZ as Direction<X, Y, Z>>::Input2Type) -> <XOZ as Direction<X, Y, Z>>::OutputType,
impl<'a, X, Y, Z, SurfaceFunc> SurfaceSeries<'a, X, Y, Z, XOZ, SurfaceFunc>where
SurfaceFunc: Fn(<XOZ as Direction<X, Y, Z>>::Input1Type, <XOZ as Direction<X, Y, Z>>::Input2Type) -> <XOZ as Direction<X, Y, Z>>::OutputType,
sourcepub fn xoz<IterA, IterB>(
a: IterA,
b: IterB,
f: SurfaceFunc
) -> SurfaceSeries<'a, X, Y, Z, XOZ, SurfaceFunc>ⓘNotable traits for SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>impl<'a, X, Y, Z, D, SurfaceFunc> Iterator for SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>where
D: Direction<X, Y, Z>,
<D as Direction<X, Y, Z>>::Input1Type: Clone,
<D as Direction<X, Y, Z>>::Input2Type: Clone,
SurfaceFunc: Fn(<D as Direction<X, Y, Z>>::Input1Type, <D as Direction<X, Y, Z>>::Input2Type) -> <D as Direction<X, Y, Z>>::OutputType, type Item = Polygon<(X, Y, Z)>;
where
IterA: Iterator<Item = <XOZ as Direction<X, Y, Z>>::Input1Type>,
IterB: Iterator<Item = <XOZ as Direction<X, Y, Z>>::Input2Type>,
pub fn xoz<IterA, IterB>(
a: IterA,
b: IterB,
f: SurfaceFunc
) -> SurfaceSeries<'a, X, Y, Z, XOZ, SurfaceFunc>ⓘNotable traits for SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>impl<'a, X, Y, Z, D, SurfaceFunc> Iterator for SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>where
D: Direction<X, Y, Z>,
<D as Direction<X, Y, Z>>::Input1Type: Clone,
<D as Direction<X, Y, Z>>::Input2Type: Clone,
SurfaceFunc: Fn(<D as Direction<X, Y, Z>>::Input1Type, <D as Direction<X, Y, Z>>::Input2Type) -> <D as Direction<X, Y, Z>>::OutputType, type Item = Polygon<(X, Y, Z)>;
where
IterA: Iterator<Item = <XOZ as Direction<X, Y, Z>>::Input1Type>,
IterB: Iterator<Item = <XOZ as Direction<X, Y, Z>>::Input2Type>,
D: Direction<X, Y, Z>,
<D as Direction<X, Y, Z>>::Input1Type: Clone,
<D as Direction<X, Y, Z>>::Input2Type: Clone,
SurfaceFunc: Fn(<D as Direction<X, Y, Z>>::Input1Type, <D as Direction<X, Y, Z>>::Input2Type) -> <D as Direction<X, Y, Z>>::OutputType, type Item = Polygon<(X, Y, Z)>;
Implements the constructor. See SurfaceSeries
for more information and examples.
sourceimpl<'a, X, Y, Z, SurfaceFunc> SurfaceSeries<'a, X, Y, Z, YOZ, SurfaceFunc>where
SurfaceFunc: Fn(<YOZ as Direction<X, Y, Z>>::Input1Type, <YOZ as Direction<X, Y, Z>>::Input2Type) -> <YOZ as Direction<X, Y, Z>>::OutputType,
impl<'a, X, Y, Z, SurfaceFunc> SurfaceSeries<'a, X, Y, Z, YOZ, SurfaceFunc>where
SurfaceFunc: Fn(<YOZ as Direction<X, Y, Z>>::Input1Type, <YOZ as Direction<X, Y, Z>>::Input2Type) -> <YOZ as Direction<X, Y, Z>>::OutputType,
sourcepub fn yoz<IterA, IterB>(
a: IterA,
b: IterB,
f: SurfaceFunc
) -> SurfaceSeries<'a, X, Y, Z, YOZ, SurfaceFunc>ⓘNotable traits for SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>impl<'a, X, Y, Z, D, SurfaceFunc> Iterator for SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>where
D: Direction<X, Y, Z>,
<D as Direction<X, Y, Z>>::Input1Type: Clone,
<D as Direction<X, Y, Z>>::Input2Type: Clone,
SurfaceFunc: Fn(<D as Direction<X, Y, Z>>::Input1Type, <D as Direction<X, Y, Z>>::Input2Type) -> <D as Direction<X, Y, Z>>::OutputType, type Item = Polygon<(X, Y, Z)>;
where
IterA: Iterator<Item = <YOZ as Direction<X, Y, Z>>::Input1Type>,
IterB: Iterator<Item = <YOZ as Direction<X, Y, Z>>::Input2Type>,
pub fn yoz<IterA, IterB>(
a: IterA,
b: IterB,
f: SurfaceFunc
) -> SurfaceSeries<'a, X, Y, Z, YOZ, SurfaceFunc>ⓘNotable traits for SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>impl<'a, X, Y, Z, D, SurfaceFunc> Iterator for SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>where
D: Direction<X, Y, Z>,
<D as Direction<X, Y, Z>>::Input1Type: Clone,
<D as Direction<X, Y, Z>>::Input2Type: Clone,
SurfaceFunc: Fn(<D as Direction<X, Y, Z>>::Input1Type, <D as Direction<X, Y, Z>>::Input2Type) -> <D as Direction<X, Y, Z>>::OutputType, type Item = Polygon<(X, Y, Z)>;
where
IterA: Iterator<Item = <YOZ as Direction<X, Y, Z>>::Input1Type>,
IterB: Iterator<Item = <YOZ as Direction<X, Y, Z>>::Input2Type>,
D: Direction<X, Y, Z>,
<D as Direction<X, Y, Z>>::Input1Type: Clone,
<D as Direction<X, Y, Z>>::Input2Type: Clone,
SurfaceFunc: Fn(<D as Direction<X, Y, Z>>::Input1Type, <D as Direction<X, Y, Z>>::Input2Type) -> <D as Direction<X, Y, Z>>::OutputType, type Item = Polygon<(X, Y, Z)>;
Implements the constructor. See SurfaceSeries
for more information and examples.
Trait Implementations
sourceimpl<'a, X, Y, Z, D, SurfaceFunc> Iterator for SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>where
D: Direction<X, Y, Z>,
<D as Direction<X, Y, Z>>::Input1Type: Clone,
<D as Direction<X, Y, Z>>::Input2Type: Clone,
SurfaceFunc: Fn(<D as Direction<X, Y, Z>>::Input1Type, <D as Direction<X, Y, Z>>::Input2Type) -> <D as Direction<X, Y, Z>>::OutputType,
impl<'a, X, Y, Z, D, SurfaceFunc> Iterator for SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc>where
D: Direction<X, Y, Z>,
<D as Direction<X, Y, Z>>::Input1Type: Clone,
<D as Direction<X, Y, Z>>::Input2Type: Clone,
SurfaceFunc: Fn(<D as Direction<X, Y, Z>>::Input1Type, <D as Direction<X, Y, Z>>::Input2Type) -> <D as Direction<X, Y, Z>>::OutputType,
sourcefn next(
&mut self
) -> Option<<SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc> as Iterator>::Item>
fn next(
&mut self
) -> Option<<SurfaceSeries<'a, X, Y, Z, D, SurfaceFunc> as Iterator>::Item>
sourcefn next_chunk<const N: usize>(
&mut self
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>
fn next_chunk<const N: usize>(
&mut self
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>
iter_next_chunk
)N
values. Read more1.0.0 · sourcefn size_hint(&self) -> (usize, Option<usize>)
fn size_hint(&self) -> (usize, Option<usize>)
1.0.0 · sourcefn count(self) -> usize
fn count(self) -> usize
1.0.0 · sourcefn last(self) -> Option<Self::Item>
fn last(self) -> Option<Self::Item>
sourcefn advance_by(&mut self, n: usize) -> Result<(), usize>
fn advance_by(&mut self, n: usize) -> Result<(), usize>
iter_advance_by
)n
elements. Read more1.0.0 · sourcefn nth(&mut self, n: usize) -> Option<Self::Item>
fn nth(&mut self, n: usize) -> Option<Self::Item>
n
th element of the iterator. Read more1.28.0 · sourcefn step_by(self, step: usize) -> StepBy<Self>
fn step_by(self, step: usize) -> StepBy<Self>
1.0.0 · sourcefn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>where
U: IntoIterator<Item = Self::Item>,
fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>where
U: IntoIterator<Item = Self::Item>,
1.0.0 · sourcefn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>where
U: IntoIterator,
fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>where
U: IntoIterator,
sourcefn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>where
G: FnMut() -> Self::Item,
fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>where
G: FnMut() -> Self::Item,
iter_intersperse
)separator
between adjacent items of the original iterator. Read more1.0.0 · sourcefn map<B, F>(self, f: F) -> Map<Self, F>where
F: FnMut(Self::Item) -> B,
fn map<B, F>(self, f: F) -> Map<Self, F>where
F: FnMut(Self::Item) -> B,
1.21.0 · sourcefn for_each<F>(self, f: F)where
F: FnMut(Self::Item),
fn for_each<F>(self, f: F)where
F: FnMut(Self::Item),
1.0.0 · sourcefn filter<P>(self, predicate: P) -> Filter<Self, P>where
P: FnMut(&Self::Item) -> bool,
fn filter<P>(self, predicate: P) -> Filter<Self, P>where
P: FnMut(&Self::Item) -> bool,
1.0.0 · sourcefn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>where
F: FnMut(Self::Item) -> Option<B>,
fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>where
F: FnMut(Self::Item) -> Option<B>,
1.0.0 · sourcefn enumerate(self) -> Enumerate<Self>
fn enumerate(self) -> Enumerate<Self>
1.0.0 · sourcefn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>where
P: FnMut(&Self::Item) -> bool,
fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>where
P: FnMut(&Self::Item) -> bool,
1.0.0 · sourcefn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>where
P: FnMut(&Self::Item) -> bool,
fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>where
P: FnMut(&Self::Item) -> bool,
1.57.0 · sourcefn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>where
P: FnMut(Self::Item) -> Option<B>,
fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>where
P: FnMut(Self::Item) -> Option<B>,
1.0.0 · sourcefn skip(self, n: usize) -> Skip<Self>
fn skip(self, n: usize) -> Skip<Self>
n
elements. Read more1.0.0 · sourcefn take(self, n: usize) -> Take<Self>
fn take(self, n: usize) -> Take<Self>
n
elements, or fewer
if the underlying iterator ends sooner. Read more1.0.0 · sourcefn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F>where
F: FnMut(&mut St, Self::Item) -> Option<B>,
fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F>where
F: FnMut(&mut St, Self::Item) -> Option<B>,
1.0.0 · sourcefn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>where
U: IntoIterator,
F: FnMut(Self::Item) -> U,
fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>where
U: IntoIterator,
F: FnMut(Self::Item) -> U,
1.0.0 · sourcefn inspect<F>(self, f: F) -> Inspect<Self, F>where
F: FnMut(&Self::Item),
fn inspect<F>(self, f: F) -> Inspect<Self, F>where
F: FnMut(&Self::Item),
1.0.0 · sourcefn by_ref(&mut self) -> &mut Self
fn by_ref(&mut self) -> &mut Self
1.0.0 · sourcefn collect<B>(self) -> Bwhere
B: FromIterator<Self::Item>,
fn collect<B>(self) -> Bwhere
B: FromIterator<Self::Item>,
sourcefn collect_into<E>(self, collection: &mut E) -> &mut Ewhere
E: Extend<Self::Item>,
fn collect_into<E>(self, collection: &mut E) -> &mut Ewhere
E: Extend<Self::Item>,
iter_collect_into
)1.0.0 · sourcefn partition<B, F>(self, f: F) -> (B, B)where
B: Default + Extend<Self::Item>,
F: FnMut(&Self::Item) -> bool,
fn partition<B, F>(self, f: F) -> (B, B)where
B: Default + Extend<Self::Item>,
F: FnMut(&Self::Item) -> bool,
sourcefn is_partitioned<P>(self, predicate: P) -> boolwhere
P: FnMut(Self::Item) -> bool,
fn is_partitioned<P>(self, predicate: P) -> boolwhere
P: FnMut(Self::Item) -> bool,
iter_is_partitioned
)true
precede all those that return false
. Read more1.27.0 · sourcefn try_fold<B, F, R>(&mut self, init: B, f: F) -> Rwhere
F: FnMut(B, Self::Item) -> R,
R: Try<Output = B>,
fn try_fold<B, F, R>(&mut self, init: B, f: F) -> Rwhere
F: FnMut(B, Self::Item) -> R,
R: Try<Output = B>,
1.27.0 · sourcefn try_for_each<F, R>(&mut self, f: F) -> Rwhere
F: FnMut(Self::Item) -> R,
R: Try<Output = ()>,
fn try_for_each<F, R>(&mut self, f: F) -> Rwhere
F: FnMut(Self::Item) -> R,
R: Try<Output = ()>,
1.0.0 · sourcefn fold<B, F>(self, init: B, f: F) -> Bwhere
F: FnMut(B, Self::Item) -> B,
fn fold<B, F>(self, init: B, f: F) -> Bwhere
F: FnMut(B, Self::Item) -> B,
1.51.0 · sourcefn reduce<F>(self, f: F) -> Option<Self::Item>where
F: FnMut(Self::Item, Self::Item) -> Self::Item,
fn reduce<F>(self, f: F) -> Option<Self::Item>where
F: FnMut(Self::Item, Self::Item) -> Self::Item,
sourcefn try_reduce<F, R>(
&mut self,
f: F
) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryTypewhere
F: FnMut(Self::Item, Self::Item) -> R,
R: Try<Output = Self::Item>,
<R as Try>::Residual: Residual<Option<Self::Item>>,
fn try_reduce<F, R>(
&mut self,
f: F
) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryTypewhere
F: FnMut(Self::Item, Self::Item) -> R,
R: Try<Output = Self::Item>,
<R as Try>::Residual: Residual<Option<Self::Item>>,
iterator_try_reduce
)1.0.0 · sourcefn all<F>(&mut self, f: F) -> boolwhere
F: FnMut(Self::Item) -> bool,
fn all<F>(&mut self, f: F) -> boolwhere
F: FnMut(Self::Item) -> bool,
1.0.0 · sourcefn any<F>(&mut self, f: F) -> boolwhere
F: FnMut(Self::Item) -> bool,
fn any<F>(&mut self, f: F) -> boolwhere
F: FnMut(Self::Item) -> bool,
1.0.0 · sourcefn find<P>(&mut self, predicate: P) -> Option<Self::Item>where
P: FnMut(&Self::Item) -> bool,
fn find<P>(&mut self, predicate: P) -> Option<Self::Item>where
P: FnMut(&Self::Item) -> bool,
1.30.0 · sourcefn find_map<B, F>(&mut self, f: F) -> Option<B>where
F: FnMut(Self::Item) -> Option<B>,
fn find_map<B, F>(&mut self, f: F) -> Option<B>where
F: FnMut(Self::Item) -> Option<B>,
sourcefn try_find<F, R>(
&mut self,
f: F
) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryTypewhere
F: FnMut(&Self::Item) -> R,
R: Try<Output = bool>,
<R as Try>::Residual: Residual<Option<Self::Item>>,
fn try_find<F, R>(
&mut self,
f: F
) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryTypewhere
F: FnMut(&Self::Item) -> R,
R: Try<Output = bool>,
<R as Try>::Residual: Residual<Option<Self::Item>>,
try_find
)1.0.0 · sourcefn position<P>(&mut self, predicate: P) -> Option<usize>where
P: FnMut(Self::Item) -> bool,
fn position<P>(&mut self, predicate: P) -> Option<usize>where
P: FnMut(Self::Item) -> bool,
1.6.0 · sourcefn max_by_key<B, F>(self, f: F) -> Option<Self::Item>where
B: Ord,
F: FnMut(&Self::Item) -> B,
fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>where
B: Ord,
F: FnMut(&Self::Item) -> B,
1.15.0 · sourcefn max_by<F>(self, compare: F) -> Option<Self::Item>where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
fn max_by<F>(self, compare: F) -> Option<Self::Item>where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
1.6.0 · sourcefn min_by_key<B, F>(self, f: F) -> Option<Self::Item>where
B: Ord,
F: FnMut(&Self::Item) -> B,
fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>where
B: Ord,
F: FnMut(&Self::Item) -> B,
1.15.0 · sourcefn min_by<F>(self, compare: F) -> Option<Self::Item>where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
fn min_by<F>(self, compare: F) -> Option<Self::Item>where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
1.0.0 · sourcefn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)where
FromA: Default + Extend<A>,
FromB: Default + Extend<B>,
Self: Iterator<Item = (A, B)>,
fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)where
FromA: Default + Extend<A>,
FromB: Default + Extend<B>,
Self: Iterator<Item = (A, B)>,
1.36.0 · sourcefn copied<'a, T>(self) -> Copied<Self>where
T: 'a + Copy,
Self: Iterator<Item = &'a T>,
fn copied<'a, T>(self) -> Copied<Self>where
T: 'a + Copy,
Self: Iterator<Item = &'a T>,
1.0.0 · sourcefn cloned<'a, T>(self) -> Cloned<Self>where
T: 'a + Clone,
Self: Iterator<Item = &'a T>,
fn cloned<'a, T>(self) -> Cloned<Self>where
T: 'a + Clone,
Self: Iterator<Item = &'a T>,
sourcefn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>
fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>
iter_array_chunks
)N
elements of the iterator at a time. Read more1.11.0 · sourcefn sum<S>(self) -> Swhere
S: Sum<Self::Item>,
fn sum<S>(self) -> Swhere
S: Sum<Self::Item>,
1.11.0 · sourcefn product<P>(self) -> Pwhere
P: Product<Self::Item>,
fn product<P>(self) -> Pwhere
P: Product<Self::Item>,
sourcefn cmp_by<I, F>(self, other: I, cmp: F) -> Orderingwhere
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Ordering,
fn cmp_by<I, F>(self, other: I, cmp: F) -> Orderingwhere
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Ordering,
iter_order_by
)Iterator
with those
of another with respect to the specified comparison function. Read more1.5.0 · sourcefn partial_cmp<I>(self, other: I) -> Option<Ordering>where
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
fn partial_cmp<I>(self, other: I) -> Option<Ordering>where
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
sourcefn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>where
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,
fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>where
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,
iter_order_by
)Iterator
with those
of another with respect to the specified comparison function. Read more1.5.0 · sourcefn eq<I>(self, other: I) -> boolwhere
I: IntoIterator,
Self::Item: PartialEq<<I as IntoIterator>::Item>,
fn eq<I>(self, other: I) -> boolwhere
I: IntoIterator,
Self::Item: PartialEq<<I as IntoIterator>::Item>,
sourcefn eq_by<I, F>(self, other: I, eq: F) -> boolwhere
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> bool,
fn eq_by<I, F>(self, other: I, eq: F) -> boolwhere
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> bool,
iter_order_by
)1.5.0 · sourcefn ne<I>(self, other: I) -> boolwhere
I: IntoIterator,
Self::Item: PartialEq<<I as IntoIterator>::Item>,
fn ne<I>(self, other: I) -> boolwhere
I: IntoIterator,
Self::Item: PartialEq<<I as IntoIterator>::Item>,
1.5.0 · sourcefn lt<I>(self, other: I) -> boolwhere
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
fn lt<I>(self, other: I) -> boolwhere
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
Iterator
are lexicographically
less than those of another. Read more1.5.0 · sourcefn le<I>(self, other: I) -> boolwhere
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
fn le<I>(self, other: I) -> boolwhere
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
Iterator
are lexicographically
less or equal to those of another. Read more1.5.0 · sourcefn gt<I>(self, other: I) -> boolwhere
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
fn gt<I>(self, other: I) -> boolwhere
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
Iterator
are lexicographically
greater than those of another. Read more1.5.0 · sourcefn ge<I>(self, other: I) -> boolwhere
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
fn ge<I>(self, other: I) -> boolwhere
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
Iterator
are lexicographically
greater than or equal to those of another. Read moresourcefn is_sorted_by<F>(self, compare: F) -> boolwhere
F: FnMut(&Self::Item, &Self::Item) -> Option<Ordering>,
fn is_sorted_by<F>(self, compare: F) -> boolwhere
F: FnMut(&Self::Item, &Self::Item) -> Option<Ordering>,
is_sorted
)sourcefn is_sorted_by_key<F, K>(self, f: F) -> boolwhere
F: FnMut(Self::Item) -> K,
K: PartialOrd<K>,
fn is_sorted_by_key<F, K>(self, f: F) -> boolwhere
F: FnMut(Self::Item) -> K,
K: PartialOrd<K>,
is_sorted
)