surrealdb_core/rpc/format/
revision.rs

1use crate::rpc::format::ResTrait;
2use crate::rpc::request::Request;
3use crate::rpc::RpcError;
4use crate::sql::Value;
5use revision::Revisioned;
6
7pub fn parse_value(val: Vec<u8>) -> Result<Value, RpcError> {
8	Value::deserialize_revisioned(&mut val.as_slice()).map_err(|_| RpcError::ParseError)
9}
10
11pub fn req(val: Vec<u8>) -> Result<Request, RpcError> {
12	parse_value(val)?.try_into()
13}
14
15pub fn res(res: impl ResTrait) -> Result<Vec<u8>, RpcError> {
16	// Serialize the response with full internal type information
17	let mut buf = Vec::new();
18	res.serialize_revisioned(&mut buf).unwrap();
19	Ok(buf)
20}