rdf_model/interop/oxrdf/
node.rs1use crate::{DEFAULT_GRAPH_URN, DefaultGraph, Term, TermKind};
4
5#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
6pub struct OxrdfNamedNode(oxrdf::NamedNode);
7
8impl Term for OxrdfNamedNode {
9 fn kind(&self) -> TermKind {
10 TermKind::Iri
11 }
12
13 #[cfg(feature = "alloc")]
14 fn value_str(&self) -> alloc::borrow::Cow<'_, str> {
15 use alloc::borrow::Cow;
16 Cow::Borrowed(self.0.as_str())
17 }
18}
19
20#[derive(Clone, Debug, Eq, Hash, PartialEq)]
21pub struct OxrdfGraphName(oxrdf::GraphName);
22
23impl Term for OxrdfGraphName {
24 fn kind(&self) -> TermKind {
25 use oxrdf::GraphName;
26 match &self.0 {
27 GraphName::NamedNode(_) => TermKind::Iri,
28 GraphName::BlankNode(_) => TermKind::BNode,
29 GraphName::DefaultGraph => TermKind::DefaultGraph,
30 }
31 }
32
33 #[cfg(feature = "alloc")]
34 fn value_str(&self) -> alloc::borrow::Cow<'_, str> {
35 use alloc::borrow::Cow;
36 use oxrdf::GraphName;
37 match &self.0 {
38 GraphName::NamedNode(node) => Cow::Borrowed(node.as_str()),
39 GraphName::BlankNode(node) => Cow::Borrowed(node.as_str()),
40 GraphName::DefaultGraph => Cow::Borrowed(DEFAULT_GRAPH_URN),
41 }
42 }
43}
44
45impl From<DefaultGraph> for OxrdfGraphName {
46 fn from(_: DefaultGraph) -> Self {
47 Self(oxrdf::GraphName::DefaultGraph)
48 }
49}