orx_concurrent_queue/common_traits/
into_iter.rs1use crate::ConcurrentQueue;
2use orx_pinned_vec::{ConcurrentPinnedVec, IntoConcurrentPinnedVec};
3
4impl<T, P> IntoIterator for ConcurrentQueue<T, P>
5where
6 T: Send,
7 P: ConcurrentPinnedVec<T>,
8 <P as ConcurrentPinnedVec<T>>::P: IntoConcurrentPinnedVec<T, ConPinnedVec = P>,
9{
10 type Item = T;
11
12 type IntoIter = P::IntoIter;
13
14 fn into_iter(mut self) -> Self::IntoIter {
15 let range = self.valid_range();
16 let convec = unsafe { self.destruct() }.0;
18 unsafe { convec.into_iter(range) }
21 }
22}