use crate::ir::ShapeLabelIdx;
use crate::validator::report::ValidationResult;
use rudof_rdf::rdf_core::term::Object;
mod parallel;
mod shared;
mod single;
pub(crate) use shared::SharedValidationCache;
pub(crate) trait ValidationCache: Send + Sync {
fn record(&self, node: Object, shape_idx: ShapeLabelIdx, results: Vec<ValidationResult>);
fn has_validated(&self, node: &Object, shape_idx: ShapeLabelIdx) -> bool;
fn get_results(&self, node: &Object, shape_idx: ShapeLabelIdx) -> Option<Vec<ValidationResult>>;
}