orx_iterable/obj_safe/transformations/
mapped_while.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
use crate::{obj_safe::IterableObj, transformations::MappedWhile, Iterable};
use std::boxed::Box;

impl<I, M, U> IterableObj for MappedWhile<I, M, U>
where
    I: Iterable,
    M: Fn(I::Item) -> Option<U> + Copy,
{
    type Item = U;

    fn boxed_iter(&self) -> Box<dyn Iterator<Item = Self::Item> + '_> {
        Box::new(self.it.iter().map_while(self.map_while))
    }
}