Skip to main content

json_ld/algorithms/deserialization/object/
mod.rs

1use 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}