#[cfg(any(feature = "memstore", feature = "test_util"))]
pub mod cbor {
extern crate alloc;
use alloc::vec::Vec;
pub use ciborium::*;
use serde::{Serialize, de::DeserializeOwned};
pub fn to_allocvec<T: Serialize>(data: &T) -> Result<Vec<u8>, ser::Error<()>> {
use ser::Error::*;
let mut out = Vec::new();
into_writer(data, &mut out).map_err(|err| match err {
Io(_) => Io(()),
Value(v) => Value(v),
})?;
Ok(out)
}
pub fn from_bytes<T: DeserializeOwned>(data: &[u8]) -> Result<T, de::Error<()>> {
use de::Error::*;
from_reader(data).map_err(|err| match err {
Io(_) => Io(()),
Syntax(v) => Syntax(v),
Semantic(a, b) => Semantic(a, b),
RecursionLimitExceeded => RecursionLimitExceeded,
})
}
}
#[cfg(feature = "tls")]
pub(crate) const fn val_is_zeroize_on_drop<T: crate::zeroize::ZeroizeOnDrop>(_: &T) {}
pub(crate) const fn type_is_zeroize_on_drop<T: crate::zeroize::ZeroizeOnDrop>() {}