use crate::expr::NodeExpr;
use crate::selector::Selector;
use crate::shape::ShapeId;
use crate::sparql::SparqlConstruct;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum RuleHead {
Triple {
subject: NodeExpr,
predicate: NodeExpr,
object: NodeExpr,
},
Sparql(SparqlConstruct),
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct Rule {
pub selector: Selector,
pub conditions: Vec<ShapeId>,
pub head: RuleHead,
pub order: Option<i64>,
pub deactivated: bool,
}