nuscenes_data/
utils.rs

1use crate::serializable::Token;
2use rayon::prelude::{FromParallelIterator, ParallelIterator};
3
4pub(crate) trait WithToken {
5    fn token(&self) -> Token;
6}
7
8pub trait ParallelIteratorExt {
9    fn par_try_collect<C, T, E>(self) -> Result<C, E>
10    where
11        Self: ParallelIterator<Item = Result<T, E>>,
12        C: FromParallelIterator<T>,
13        T: Send,
14        E: Send;
15}
16
17impl<I> ParallelIteratorExt for I {
18    fn par_try_collect<C, T, E>(self) -> Result<C, E>
19    where
20        Self: ParallelIterator<Item = Result<T, E>>,
21        C: FromParallelIterator<T>,
22        T: Send,
23        E: Send,
24    {
25        let collection: Result<C, E> = self.collect();
26        collection
27    }
28}