use super::AbstractSerializer;
use bincode::config::Options as _;
use icu_provider::buf::BufferFormat;
use icu_provider::datagen::*;
use icu_provider::prelude::*;
use std::io;
#[allow(clippy::exhaustive_structs)] pub struct Serializer;
#[non_exhaustive]
#[derive(Clone, Debug, PartialEq, Default)]
pub struct Options;
impl AbstractSerializer for Serializer {
fn serialize(
&self,
obj: &DataPayload<ExportMarker>,
sink: &mut dyn io::Write,
) -> Result<(), DataError> {
obj.serialize(&mut bincode::Serializer::new(
sink,
bincode::config::DefaultOptions::new().with_fixint_encoding(),
))
.map_err(|e| DataError::custom("Bincode serialize").with_display_context(&e))?;
Ok(())
}
fn get_buffer_format(&self) -> BufferFormat {
BufferFormat::Bincode1
}
}
impl Serializer {
pub fn new(_options: Options) -> Self {
Self {}
}
}
impl Default for Serializer {
fn default() -> Self {
Self::new(Default::default())
}
}