#![doc = include_str!("../README.md")]
#![no_std]
#![cfg_attr(feature = "unstable", feature(iter_advance_by, try_trait_v2))]
mod adapter_impls {
macro_rules! decl {
($($mod:ident :: $adapter:ident);+ $(;)?) => {
$(
mod $mod;
pub use $mod::$adapter;
)+
};
}
decl! {
map::PureMap;
}
}
pub use adapter_impls::*;
pub trait PureIterExt: Iterator + Sized {
fn pure_map<F, U>(self, f: F) -> PureMap<Self, F>
where F: Fn(Self::Item) -> U,
{
PureMap::new(self, f)
}
}
impl<I: Iterator> PureIterExt for I { }