rdf_fusion_encoding/
scalar_encoder.rs1use rdf_fusion_model::{BlankNodeRef, GraphNameRef, LiteralRef, NamedNodeRef, TermRef};
2
3pub trait ScalarEncoder {
5 type Scalar;
6
7 fn encode_scalar_term(term: TermRef<'_>) -> Self::Scalar {
9 match term {
10 TermRef::NamedNode(nn) => Self::encode_scalar_named_node(nn),
11 TermRef::BlankNode(bnode) => Self::encode_scalar_blank_node(bnode),
12 TermRef::Literal(lit) => Self::encode_scalar_literal(lit),
13 }
14 }
15
16 fn encode_scalar_graph(graph: GraphNameRef<'_>) -> Self::Scalar;
18
19 fn encode_scalar_null() -> Self::Scalar;
21
22 fn encode_scalar_named_node(node: NamedNodeRef<'_>) -> Self::Scalar;
24
25 fn encode_scalar_blank_node(node: BlankNodeRef<'_>) -> Self::Scalar;
27
28 fn encode_scalar_literal(literal: LiteralRef<'_>) -> Self::Scalar;
30}