shacl_ast/ast/
node_kind.rs1use std::fmt::Display;
2
3#[derive(Debug, Clone, Eq, PartialEq, Hash)]
4pub enum NodeKind {
5 Iri,
6 Literal,
7 BlankNode,
8 BlankNodeOrIri,
9 BlankNodeOrLiteral,
10 IRIOrLiteral,
11}
12
13impl Display for NodeKind {
14 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
15 let node = match self {
16 NodeKind::Iri => crate::SH_IRI.as_named_node(),
17 NodeKind::Literal => crate::SH_LITERAL.as_named_node(),
18 NodeKind::BlankNode => crate::SH_BLANKNODE.as_named_node(),
19 NodeKind::BlankNodeOrIri => crate::SH_BLANK_NODE_OR_IRI.as_named_node(),
20 NodeKind::BlankNodeOrLiteral => crate::SH_BLANK_NODE_OR_LITERAL.as_named_node(),
21 NodeKind::IRIOrLiteral => crate::SH_IRI_OR_LITERAL.as_named_node(),
22 };
23 write!(f, "{}", node)
24 }
25}