shacl_ast/ast/
value.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
use std::fmt::Display;

use iri_s::IriS;
use prefixmap::IriRef;
use srdf::literal::Literal;

#[derive(Debug, Clone, Eq, PartialEq, Hash)]
pub enum Value {
    Iri(IriRef),
    Literal(Literal),
}

impl Value {
    pub fn iri(iri: IriS) -> Value {
        Value::Iri(IriRef::iri(iri))
    }

    pub fn literal(literal: Literal) -> Value {
        Value::Literal(literal)
    }
}

impl Display for Value {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        match self {
            Value::Iri(iri) => write!(f, "value({iri})"),
            Value::Literal(lit) => write!(f, "value({lit})"),
        }
    }
}