#![cfg_attr(not(test), no_std)]
#![doc = include_str!("../README.md")]
#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy, Default)]
pub struct ExtendUsing<F: ?Sized>(pub F);
impl<F> ExtendUsing<F> {
#[inline]
pub const fn new(f: F) -> Self {
Self(f)
}
}
impl<F> From<F> for ExtendUsing<F> {
#[inline]
fn from(value: F) -> Self {
Self::new(value)
}
}
impl<Item, F: ?Sized + FnMut(Item)> Extend<Item> for ExtendUsing<F> {
#[inline]
fn extend<I: IntoIterator<Item = Item>>(&mut self, iter: I) {
for item in iter {
self.0(item)
}
}
}