firebase_rs_sdk/util/
json.rs1use serde::de::DeserializeOwned;
2use serde::Serialize;
3use serde_json::Value;
4
5pub fn json_eval<T: DeserializeOwned>(input: &str) -> serde_json::Result<T> {
6 serde_json::from_str(input)
7}
8
9pub fn stringify<T: ?Sized + Serialize>(value: &T) -> serde_json::Result<String> {
10 serde_json::to_string(value)
11}
12
13pub fn json_eval_value(input: &str) -> serde_json::Result<Value> {
14 serde_json::from_str(input)
15}
16
17#[cfg(test)]
18mod tests {
19 use super::*;
20 use serde_json::json;
21
22 #[test]
23 fn roundtrip() {
24 let value = json!({"a": 1, "b": "two"});
25 let encoded = stringify(&value).unwrap();
26 let decoded: Value = json_eval(&encoded).unwrap();
27 assert_eq!(decoded, value);
28 }
29}