shacl_ast 0.0.7

RDF data shapes implementation in Rust
Documentation
use prefixmap::IriRef;
use srdf::{RDFNode, literal::Literal, lang::Lang};

use crate::{node_kind::NodeKind, value::Value};

#[derive(Debug, Clone)]
pub enum Component {
    Class(RDFNode),
    Datatype(IriRef),
    NodeKind(NodeKind),
    MinCount(isize),
    MaxCount(isize),
    MinExclusive(Literal),
    MaxExclusive(Literal),
    MinInclusive(Literal),
    MaxInclusive(Literal),
    MinLength(isize),
    MaxLength(isize),
    Pattern{ pattern: String, flags: Option<String> },
    UniqueLang(bool),
    LanguageIn{ langs: Vec<Lang> },
    Equals(IriRef),
    Disjoint(IriRef),
    LessThan(IriRef),
    LessThanOrEquals(IriRef),
    Or { shapes: Vec<RDFNode> },
    And { shapes: Vec<RDFNode> },
    Not { shape: RDFNode },
    Xone { shapes: Vec<RDFNode> },
    Closed { is_closed: bool, ignored_properties: Vec<IriRef> },
    Node { shape: RDFNode },
    HasValue { value: Value },
    In { values: Vec<Value> },
    QualifiedValueShape { shape: RDFNode, qualified_min_count: Option<isize>, qualified_max_count: Option<isize>, qualified_value_shapes_disjoint: Option<bool>}
}