#![deny(missing_docs)]
use std::{collections::BTreeSet, marker::PhantomData, ops::Range};
use sophia_inmem::index::BasicTermIndex;
use crate::d_entailment::IllTypedLiteral;
pub mod d_entailment;
pub mod dataset;
pub mod ruleset;
mod _dedup;
mod _graph_impl;
mod _range_n;
pub struct ReasonableGraph<D, R> {
terms: BasicTermIndex<usize>,
rdt: Range<usize>,
spo: BTreeSet<[usize; 3]>,
pos: BTreeSet<[usize; 3]>,
osp: BTreeSet<[usize; 3]>,
_phantom: PhantomData<(D, R)>,
#[cfg(debug_assertions)]
finalized: bool,
}
#[derive(Clone, Debug, thiserror::Error)]
pub enum Inconsistency {
#[error("Ill-typed literal")]
IllTypedLiteral(
#[from]
#[source]
IllTypedLiteral,
),
#[error("Other inconsistency: {0}")]
Other(String),
}
#[cfg(test)]
mod test;