tmc_langs_util/
serialize.rs1use crate::JsonError;
4use serde::Serialize;
5
6pub fn to_json_string<T: Serialize>(value: &T) -> Result<String, JsonError> {
7 let mut buf = Vec::new();
8 let se = &mut serde_json::Serializer::new(&mut buf);
9 serde_path_to_error::serialize(value, se)?;
10 let string = String::from_utf8(buf).expect("invalid json from serializer");
11 Ok(string)
12}
13
14pub fn to_json_vec<T: Serialize>(value: &T) -> Result<Vec<u8>, JsonError> {
15 let mut buf = Vec::new();
16 let se = &mut serde_json::Serializer::new(&mut buf);
17 serde_path_to_error::serialize(value, se)?;
18 Ok(buf)
19}
20
21pub fn to_json_value<T: Serialize>(value: &T) -> Result<serde_json::Value, JsonError> {
22 let se = serde_json::value::Serializer;
23 let value = serde_path_to_error::serialize(value, se)?;
24 Ok(value)
25}