firebase_rs_sdk/util/
json.rs

1use 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}