linked-data 0.2.0

Linked-Data dateset serialization/deserialization traits
Documentation
use btree_indexmap::{BTreeIndexMultiSet, BTreeIndexSet};

use crate::{SerializeLinkedData, ser::SerializeLinkedDataWith};

impl<Q: Clone, R: Clone + Ord, T: SerializeLinkedDataWith<Q, R>> SerializeLinkedDataWith<Q, R>
	for BTreeIndexSet<T>
{
	fn serialize_rdf_with<S>(
		&self,
		state: Q,
		mut serializer: S,
		graph: Option<&R>,
	) -> Result<S::Ok, S::Error>
	where
		S: crate::LinkedDataSerializer<R>,
	{
		for item in self {
			item.serialize_rdf_with(state.clone(), serializer.as_dyn_mut(), graph)?;
		}

		serializer.end()
	}
}

impl<R: Clone + Ord, T: SerializeLinkedData<R>> SerializeLinkedData<R> for BTreeIndexSet<T> {
	fn serialize_rdf<S>(&self, mut serializer: S, graph: Option<&R>) -> Result<S::Ok, S::Error>
	where
		S: crate::LinkedDataSerializer<R>,
	{
		for item in self {
			item.serialize_rdf(serializer.as_dyn_mut(), graph)?;
		}

		serializer.end()
	}
}

impl<R: Clone + Ord, T: SerializeLinkedData<R>> SerializeLinkedData<R> for BTreeIndexMultiSet<T> {
	fn serialize_rdf<S>(&self, mut serializer: S, graph: Option<&R>) -> Result<S::Ok, S::Error>
	where
		S: crate::LinkedDataSerializer<R>,
	{
		for item in self {
			item.serialize_rdf(serializer.as_dyn_mut(), graph)?;
		}

		serializer.end()
	}
}