#![allow(dead_code)]
#[allow(unused_imports)]
use crate::nostd_prelude::*;
use crate::cbor::CborCodec;
use crate::error::{DecodeError, EncodeError};
use serde::{de::DeserializeOwned, Serialize};
pub(crate) mod value_de;
pub(crate) mod value_ser;
pub struct MinimalCodec;
impl CborCodec for MinimalCodec {
fn encode_deterministic<T: Serialize>(value: &T) -> Result<Vec<u8>, EncodeError> {
let val = value_ser::to_value(value).map_err(EncodeError::Serialization)?;
let mut buf = Vec::new();
super::minimal::encode_value(&mut buf, &val)
.map_err(|e| EncodeError::Serialization(e.to_string()))?;
Ok(buf)
}
fn decode<T: DeserializeOwned>(bytes: &[u8]) -> Result<T, DecodeError> {
let mut reader = super::minimal::SliceReader::new(bytes);
let val = super::minimal::decode_value(&mut reader)
.map_err(|e| DecodeError::Deserialization(e.to_string()))?;
let result = value_de::from_value(val).map_err(DecodeError::Deserialization)?;
Ok(result)
}
}