use crate::ConcurrentQueue;
use orx_pinned_vec::{ConcurrentPinnedVec, IntoConcurrentPinnedVec};
impl<T, P> IntoIterator for ConcurrentQueue<T, P>
where
T: Send,
P: ConcurrentPinnedVec<T>,
<P as ConcurrentPinnedVec<T>>::P: IntoConcurrentPinnedVec<T, ConPinnedVec = P>,
{
type Item = T;
type IntoIter = P::IntoIter;
fn into_iter(mut self) -> Self::IntoIter {
let range = self.valid_range();
let convec = unsafe { self.destruct() }.0;
unsafe { convec.into_iter(range) }
}
}