#![doc(html_root_url="https://docs.rs/itertools-wild/")]
extern crate either;
extern crate itertools;
pub mod adaptors;
pub mod special;
use adaptors::{
ClampToExactLength,
AssertExactSize,
};
pub trait ItertoolsWild : Iterator {
fn assert_exact_size(self, size: usize) -> AssertExactSize<Self>
where Self: Sized,
{
AssertExactSize {
iter: self,
size: size,
}
}
fn clamp_to_exact_length<F>(self, length: usize, filler: F) -> ClampToExactLength<Self, F>
where Self: Sized,
F: FnMut(usize) -> Self::Item,
{
ClampToExactLength {
iter: self.fuse(),
index: 0,
size: length,
filler: filler,
}
}
}
impl<I> ItertoolsWild for I where I: Iterator { }