1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
use crate::{InternalIterator, IntoInternalIterator}; /// A trait for extending a collection with each item of an internal iterator. pub trait ExtendFromInternalIterator<T> { /// Extends `self` with each item of `internal_iter`. fn extend_from_internal_iter<I>(&mut self, internal_iter: I) where I: IntoInternalIterator<Item = T>; } impl<T> ExtendFromInternalIterator<T> for Vec<T> { fn extend_from_internal_iter<I>(&mut self, internal_iter: I) where I: IntoInternalIterator<Item = T>, { internal_iter.into_internal_iter().for_each(&mut |item| { self.push(item); true }); } }