mod convert;
use surrealdb_types::Value;
pub fn encode(v: Value) -> anyhow::Result<Vec<u8>> {
let encoding = convert::from_value(v).map_err(|e| anyhow::anyhow!(e))?;
let mut res = Vec::new();
ciborium::into_writer(&encoding, &mut res)
.map_err(|e| anyhow::anyhow!("failed to encode CBOR: {e}"))?;
Ok(res)
}
pub fn decode(bytes: &[u8], recursion_limit: usize) -> anyhow::Result<Value> {
let encoding = ciborium::de::from_reader_with_recursion_limit(bytes, recursion_limit)
.map_err(|e| anyhow::anyhow!(e.to_string()))?;
convert::to_value(encoding).map_err(|e| anyhow::anyhow!(e))
}