[![Rust](https://github.com/haraldh/dynqueue/workflows/Rust/badge.svg)](https://github.com/haraldh/dynqueue/actions) [![Coverage Status](https://coveralls.io/repos/github/haraldh/dynqueue/badge.svg?branch=master)](https://coveralls.io/github/haraldh/dynqueue?branch=master) # DynQueue - dynamically extendable Rayon parallel iterator A `DynQueue` can be iterated with `into_par_iter` producing `(DynQueueHandle, T)` elements. With the `DynQueueHandle` a new `T` can be inserted in the `DynQueue`, which is currently iterated over. ```rust use dynqueue::DynQueue; use rayon::iter::IntoParallelIterator as _; use rayon::iter::ParallelIterator as _; fn main() { let mut result = DynQueue::new(vec![1, 2, 3]) .into_par_iter() .map(|(handle, value)| { if value == 2 { handle.enqueue(4) }; value }) .collect::>(); result.sort(); assert_eq!(result, vec![1, 2, 3, 4]); } ``` ## Features * `crossbeam-queue` : to use `crossbeam::queue::SegQueue` as the inner collection.