[−][src]Function inplace_it::inplace_or_alloc_from_iter
pub fn inplace_or_alloc_from_iter<Iter, R, Consumer>(
iter: Iter,
consumer: Consumer
) -> R where
Iter: Iterator,
Consumer: FnOnce(&mut [Iter::Item]) -> R,
inplace_or_alloc_from_iter
is helper function used to easy trying to place data from Iterator
.
It tries to get upper bound of size_hint
of iterator and forward it to inplace_or_alloc_array
function.
It there is not upper bound hint from iterator, then it just collect
your data into Vec
.
If iterator contains more data that size_hint
said
(and more than try_inplace_array
function placed on stack),
then items will be moved and collected (by iterating) into Vec
also.
Examples
// Some random number to demonstrate let count = 42; let iterator = 0..count; let result = ::inplace_it::inplace_or_alloc_from_iter(iterator.clone(), |mem| { assert_eq!(mem.len(), count); assert!(mem.iter().cloned().eq(iterator)); // Some result format!("{}", mem.len()) }); assert_eq!(result, format!("{}", count));