rc_event_queue 0.4.3

VecDeque-like fast, unbounded, FIFO, concurent read-lock-free message queue.
Documentation
use crate::event_reader::LendingIterator;

pub fn consume_copies<T: Clone>(iter: &mut impl LendingIterator<ItemValue = T>) -> Vec<T> {
    consume_mapped(iter, |item| item.clone())
}

pub fn consume_mapped<T, F, R>(iter: &mut impl LendingIterator<ItemValue = T>, f: F) -> Vec<R>
where F: Fn(&T) -> R
{
    let mut v = Vec::new();
    while let Some(item) = iter.next(){
        v.push( f(item) );
    }
    v
}

pub fn skip<T>(iter: &mut impl LendingIterator<ItemValue = T>, len : usize) {
    let mut i = 0;
    while let Some(_) = iter.next(){
        i+=1;

        if i == len {
            break;
        }
    }
}