json_ld/algorithms/deserialization/object/
mod.rs1use linked_data::{LinkedDataSerializer, SerializeLinkedData, ser::SerializeLinkedDataWith};
2use rdf_syntax::Term;
3
4use crate::{JsonLdIndexed, JsonLdObject};
5
6use super::RdfSerializationOptions;
7
8mod list;
9mod node;
10mod value;
11
12impl SerializeLinkedDataWith<RdfSerializationOptions> for JsonLdObject {
13 fn serialize_rdf_with<S>(
14 &self,
15 opts: RdfSerializationOptions,
16 serializer: S,
17 graph: Option<&Term>,
18 ) -> Result<S::Ok, S::Error>
19 where
20 S: LinkedDataSerializer<Term>,
21 {
22 match self {
23 Self::Node(node) => node.serialize_rdf_with(opts, serializer, graph),
24 Self::List(list) => list.serialize_rdf_with(opts, serializer, graph),
25 Self::Value(value) => value.serialize_rdf_with(opts, serializer, graph),
26 }
27 }
28}
29
30impl SerializeLinkedData for JsonLdObject {
31 fn serialize_rdf<S>(&self, serializer: S, graph: Option<&Term>) -> Result<S::Ok, S::Error>
32 where
33 S: LinkedDataSerializer<Term>,
34 {
35 self.serialize_rdf_with(RdfSerializationOptions::default(), serializer, graph)
36 }
37}
38
39impl<T: SerializeLinkedDataWith<RdfSerializationOptions>>
40 SerializeLinkedDataWith<RdfSerializationOptions> for JsonLdIndexed<T>
41{
42 fn serialize_rdf_with<S>(
43 &self,
44 opts: RdfSerializationOptions,
45 serializer: S,
46 graph: Option<&Term>,
47 ) -> Result<S::Ok, S::Error>
48 where
49 S: LinkedDataSerializer<Term>,
50 {
51 self.inner().serialize_rdf_with(opts, serializer, graph)
52 }
53}
54
55impl<T: SerializeLinkedData> SerializeLinkedData for JsonLdIndexed<T> {
56 fn serialize_rdf<S>(&self, serializer: S, graph: Option<&Term>) -> Result<S::Ok, S::Error>
57 where
58 S: LinkedDataSerializer<Term>,
59 {
60 self.inner().serialize_rdf(serializer, graph)
61 }
62}