kgdata 4.0.1

Library to process dumps of knowledge graphs (Wikipedia, DBpedia, Wikidata)
Documentation
use rayon::prelude::*;

use super::ParallelDataset;

#[derive(Clone)]
pub struct FilterOp<D: ParallelDataset, F> {
    pub base: D,
    pub op: F,
}

impl<D, F> IntoParallelIterator for FilterOp<D, F>
where
    D: ParallelDataset,
    F: (Fn(&D::Item) -> bool) + Sync + Send,
{
    type Iter = rayon::iter::Filter<D::Iter, F>;
    type Item = D::Item;

    fn into_par_iter(self) -> Self::Iter {
        self.base.into_par_iter().filter(self.op)
    }
}

impl<D, F> ParallelDataset for FilterOp<D, F>
where
    D: ParallelDataset,
    F: (Fn(&D::Item) -> bool) + Sync + Send,
{
}