sophia_reasoner 0.10.0

A Rust toolkit for RDF and Linked Data - reasoner over Simple, RDF and RDF-Schema entailments
Documentation
use std::collections::BTreeSet;

pub trait RangeN {
    fn range1(&self, k1: usize) -> std::collections::btree_set::Range<'_, [usize; 3]>;
    fn range2(&self, k1: usize, k2: usize) -> std::collections::btree_set::Range<'_, [usize; 3]>;
    fn range3(
        &self,
        k1: usize,
        k2: usize,
        k3: usize,
    ) -> std::collections::btree_set::Range<'_, [usize; 3]>;
}

impl RangeN for BTreeSet<[usize; 3]> {
    fn range1(&self, k1: usize) -> std::collections::btree_set::Range<'_, [usize; 3]> {
        self.range([k1, 0, 0]..=[k1, usize::MAX, usize::MAX])
    }

    fn range2(&self, k1: usize, k2: usize) -> std::collections::btree_set::Range<'_, [usize; 3]> {
        self.range([k1, k2, 0]..=[k1, k2, usize::MAX])
    }

    fn range3(
        &self,
        k1: usize,
        k2: usize,
        k3: usize,
    ) -> std::collections::btree_set::Range<'_, [usize; 3]> {
        self.range([k1, k2, k3]..=[k1, k2, k3])
    }
}