Skip to main content

lend_iter

Function lend_iter 

Source
pub fn lend_iter<'a, L, I>(iter: I) -> LendIter<'a, L, I>
where L: ?Sized + CovariantLending + 'a, I: Iterator<Item = Lend<'a, L>>,
Expand description

Creates a lender from an iterator I, safely shortening the items’ lifetimes with the given lending type L.

If I::Item is ’static, behaves like from_iter.

§Examples


// properly shortens the lifetime of non-static items and lends them
let mut lender = lender::lend_iter::<'_, lend!(&'lend i32), _>(data.iter());
let lend: &'_ i32 = lender.next().unwrap();

// does not shorten the lifetime of 'static items, behaves like `from_iter`
let mut lender = lender::lend_iter::<'_, lend!(i32), _>([1, 2, 3].into_iter());
let item: i32 = lender.next().unwrap();
let item2: i32 = lender.next().unwrap();