shacl_validation/constraints/core/property_pair/
equals.rs1use crate::constraints::constraint_error::ConstraintError;
2use crate::constraints::NativeValidator;
3use crate::constraints::SparqlValidator;
4use crate::constraints::Validator;
5use crate::engine::native::NativeEngine;
6use crate::engine::sparql::SparqlEngine;
7use crate::engine::Engine;
8use crate::validation_report::result::ValidationResult;
9use crate::value_nodes::ValueNodes;
10use shacl_ast::compiled::component::CompiledComponent;
11use shacl_ast::compiled::component::Equals;
12use shacl_ast::compiled::shape::CompiledShape;
13use srdf::Query;
14use srdf::Rdf;
15use srdf::Sparql;
16use std::fmt::Debug;
17
18impl<S: Rdf + Debug> Validator<S> for Equals<S> {
19 fn validate(
20 &self,
21 _component: &CompiledComponent<S>,
22 _shape: &CompiledShape<S>,
23 _store: &S,
24 _engine: impl Engine<S>,
25 _value_nodes: &ValueNodes<S>,
26 _source_shape: Option<&CompiledShape<S>>,
27 ) -> Result<Vec<ValidationResult>, ConstraintError> {
28 Err(ConstraintError::NotImplemented("Equals".to_string()))
29 }
30}
31
32impl<S: Query + Debug + 'static> NativeValidator<S> for Equals<S> {
33 fn validate_native(
34 &self,
35 component: &CompiledComponent<S>,
36 shape: &CompiledShape<S>,
37 store: &S,
38 value_nodes: &ValueNodes<S>,
39 source_shape: Option<&CompiledShape<S>>,
40 ) -> Result<Vec<ValidationResult>, ConstraintError> {
41 self.validate(
42 component,
43 shape,
44 store,
45 NativeEngine,
46 value_nodes,
47 source_shape,
48 )
49 }
50}
51
52impl<S: Sparql + Debug + 'static> SparqlValidator<S> for Equals<S> {
53 fn validate_sparql(
54 &self,
55 component: &CompiledComponent<S>,
56 shape: &CompiledShape<S>,
57 store: &S,
58 value_nodes: &ValueNodes<S>,
59 source_shape: Option<&CompiledShape<S>>,
60 ) -> Result<Vec<ValidationResult>, ConstraintError> {
61 self.validate(
62 component,
63 shape,
64 store,
65 SparqlEngine,
66 value_nodes,
67 source_shape,
68 )
69 }
70}