compris 0.0.11

Composite Primitive Schema (CPS) for Rust
Documentation
use super::super::{
    super::{annotate::*, normal::*},
    modal::*,
    mode::*,
    serializer::Serializer as ComprisSerializer,
};

use serde::ser::*;

impl<AnnotatedT> Serialize for List<AnnotatedT> {
    fn serialize<SerializerT>(&self, serializer: SerializerT) -> Result<SerializerT::Ok, SerializerT::Error>
    where
        SerializerT: Serializer,
    {
        let mut seq = serializer.serialize_seq(Some(self.inner.len()))?;
        for item in &self.inner {
            seq.serialize_element(item)?;
        }
        seq.end()
    }
}

impl<AnnotatedT> SerializeModalRescursive for List<AnnotatedT>
where
    AnnotatedT: Annotated + Clone + Default,
{
    fn serialize_modal<SerializerT>(
        &self,
        serializer: SerializerT,
        mode: &SerializationMode,
        compris_serializer: &ComprisSerializer,
    ) -> Result<SerializerT::Ok, SerializerT::Error>
    where
        SerializerT: Serializer,
    {
        let mut seq = serializer.serialize_seq(Some(self.inner.len()))?;
        for item in &self.inner {
            seq.serialize_element(&item.modal(mode, compris_serializer))?;
        }
        seq.end()
    }
}