lisp_rpc_rust_serializer/
lib.rs1use anyhow::Result;
2use serde::{Deserialize, Serialize};
3
4pub mod deserializer;
5pub mod serializer;
6
7pub use deserializer::*;
8pub use serializer::*;
9
10pub fn lisp_rpc_to_str(v: impl Serialize) -> Result<String> {
12 let mut buf = Vec::with_capacity(1024);
13
14 let mut _s = serializer::LispRPCSerializer::new(&mut buf);
15 v.serialize(&mut _s)?;
16 let pos = _s.pos;
17
18 Ok(String::from_utf8(buf[..pos].to_vec())?)
19}
20
21pub fn lisp_rpc_to_buf(v: impl Serialize, buffer: &mut Vec<u8>) -> Result<usize> {
23 let mut _s = serializer::LispRPCSerializer::new(buffer);
24 v.serialize(&mut _s)?;
25 Ok(_s.pos)
26}
27
28pub fn lisp_rpc_from_str<'s, T: Deserialize<'s>>(s: &'s str) -> Result<T> {
30 let mut _de = deserializer::LispRPCDeserializer::from_str(s);
31 Ok(T::deserialize(&mut _de)?)
32}