shacl_ast/ast/
value.rs
1use std::fmt::Display;
2
3use iri_s::IriS;
4use prefixmap::IriRef;
5use srdf::literal::Literal;
6
7#[derive(Debug, Clone, Eq, PartialEq, Hash)]
8pub enum Value {
9 Iri(IriRef),
10 Literal(Literal),
11}
12
13impl Value {
14 pub fn iri(iri: IriS) -> Value {
15 Value::Iri(IriRef::iri(iri))
16 }
17
18 pub fn literal(literal: Literal) -> Value {
19 Value::Literal(literal)
20 }
21}
22
23impl Display for Value {
24 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
25 match self {
26 Value::Iri(iri) => write!(f, "value({iri})"),
27 Value::Literal(lit) => write!(f, "value({lit})"),
28 }
29 }
30}