use crate::engine::{CoreResult, OxideError};
#[cfg(not(feature = "persistence-json"))]
pub fn encode<T>(value: &T) -> CoreResult<Vec<u8>>
where
T: serde::Serialize,
{
bincode::serialize(value).map_err(|e| OxideError::Persistence {
message: e.to_string(),
})
}
#[cfg(feature = "persistence-json")]
pub fn encode<T>(value: &T) -> CoreResult<Vec<u8>>
where
T: serde::Serialize,
{
serde_json::to_vec(value).map_err(|e| OxideError::Persistence {
message: e.to_string(),
})
}
#[cfg(not(feature = "persistence-json"))]
pub fn decode<T>(bytes: &[u8]) -> CoreResult<T>
where
T: serde::de::DeserializeOwned,
{
bincode::deserialize(bytes).map_err(|e| OxideError::Persistence {
message: e.to_string(),
})
}
#[cfg(feature = "persistence-json")]
pub fn decode<T>(bytes: &[u8]) -> CoreResult<T>
where
T: serde::de::DeserializeOwned,
{
serde_json::from_slice(bytes).map_err(|e| OxideError::Persistence {
message: e.to_string(),
})
}
#[cfg(feature = "persistence-json")]
pub fn encode_json<T>(value: &T) -> CoreResult<String>
where
T: serde::Serialize,
{
serde_json::to_string(value).map_err(|e| OxideError::Persistence {
message: e.to_string(),
})
}
#[cfg(feature = "persistence-json")]
pub fn decode_json<T>(value: &str) -> CoreResult<T>
where
T: serde::de::DeserializeOwned,
{
serde_json::from_str(value).map_err(|e| OxideError::Persistence {
message: e.to_string(),
})
}