linked_data/ser/
unordered.rs1use crate::RdfUnordered;
2
3use super::{LinkedDataSerializer, SerializeLinkedData};
4
5impl<R: Clone + Ord, T: SerializeLinkedDataUnordered<R>> SerializeLinkedData<R>
6 for RdfUnordered<T>
7{
8 fn serialize_rdf<S>(&self, serializer: S, graph: Option<&R>) -> Result<S::Ok, S::Error>
9 where
10 S: LinkedDataSerializer<R>,
11 {
12 self.0.serialize_rdf_unordered(serializer, graph)
13 }
14}
15
16pub trait SerializeLinkedDataUnordered<R: Clone + Ord> {
17 fn serialize_rdf_unordered<S>(
18 &self,
19 serializer: S,
20 graph: Option<&R>,
21 ) -> Result<S::Ok, S::Error>
22 where
23 S: LinkedDataSerializer<R>;
24}
25
26impl<R: Clone + Ord, T: ?Sized + SerializeLinkedDataUnordered<R>> SerializeLinkedDataUnordered<R>
27 for &T
28{
29 fn serialize_rdf_unordered<S>(
30 &self,
31 serializer: S,
32 graph: Option<&R>,
33 ) -> Result<S::Ok, S::Error>
34 where
35 S: LinkedDataSerializer<R>,
36 {
37 T::serialize_rdf_unordered(*self, serializer, graph)
38 }
39}
40
41impl<R: Clone + Ord, T: SerializeLinkedData<R>> SerializeLinkedDataUnordered<R> for [T] {
42 fn serialize_rdf_unordered<S>(
43 &self,
44 mut serializer: S,
45 graph: Option<&R>,
46 ) -> Result<S::Ok, S::Error>
47 where
48 S: LinkedDataSerializer<R>,
49 {
50 for item in self {
51 item.serialize_rdf(serializer.as_dyn_mut(), graph)?;
52 }
53
54 serializer.end()
55 }
56}
57
58impl<R: Clone + Ord, T: SerializeLinkedData<R>> SerializeLinkedDataUnordered<R> for Vec<T> {
59 fn serialize_rdf_unordered<S>(
60 &self,
61 serializer: S,
62 graph: Option<&R>,
63 ) -> Result<S::Ok, S::Error>
64 where
65 S: LinkedDataSerializer<R>,
66 {
67 self.as_slice().serialize_rdf_unordered(serializer, graph)
68 }
69}