pub trait LinesIter<'a> {
    type Scalar: CoordNum;
    type Iter: Iterator<Item = Line<Self::Scalar>>;

    // Required method
    fn lines_iter(&'a self) -> Self::Iter;
}
Expand description

Iterate over lines of a geometry.

Required Associated Types§

Required Methods§

source

fn lines_iter(&'a self) -> Self::Iter

Iterate over all exterior and (if any) interior lines of a geometry.

§Examples
use geo::line_string;
use geo::lines_iter::LinesIter;
use geo::{coord, Line};

let ls = line_string![
    (x: 1., y: 2.),
    (x: 23., y: 82.),
    (x: -1., y: 0.),
];

let mut iter = ls.lines_iter();
assert_eq!(
    Some(Line::new(
        coord! { x: 1., y: 2. },
        coord! { x: 23., y: 82. }
    )),
    iter.next()
);
assert_eq!(
    Some(Line::new(
        coord! { x: 23., y: 82. },
        coord! { x: -1., y: 0. }
    )),
    iter.next()
);
assert_eq!(None, iter.next());

Implementors§

source§

impl<'a, T: CoordNum + 'a> LinesIter<'a> for Line<T>

§

type Scalar = T

§

type Iter = Copied<Once<&'a Line<<Line<T> as LinesIter<'a>>::Scalar>>>

source§

impl<'a, T: CoordNum + 'a> LinesIter<'a> for LineString<T>

§

type Scalar = T

§

type Iter = LineStringIter<'a, <LineString<T> as LinesIter<'a>>::Scalar>

source§

impl<'a, T: CoordNum + 'a> LinesIter<'a> for MultiLineString<T>

source§

impl<'a, T: CoordNum + 'a> LinesIter<'a> for MultiPolygon<T>

source§

impl<'a, T: CoordNum + 'a> LinesIter<'a> for Polygon<T>

source§

impl<'a, T: CoordNum + 'a> LinesIter<'a> for Rect<T>

§

type Scalar = T

§

type Iter = <[Line<<Rect<T> as LinesIter<'a>>::Scalar>; 4] as IntoIterator>::IntoIter

source§

impl<'a, T: CoordNum + 'a> LinesIter<'a> for Triangle<T>

§

type Scalar = T

§

type Iter = <[Line<<Triangle<T> as LinesIter<'a>>::Scalar>; 3] as IntoIterator>::IntoIter