(value: &prost_types::Value)
| 26 | /// Convert a protobuf Value into a JSON value for typed serde decoding. |
| 27 | #[must_use] |
| 28 | pub fn value_to_json(value: &prost_types::Value) -> serde_json::Value { |
| 29 | match value.kind.as_ref() { |
| 30 | Some(prost_types::value::Kind::NumberValue(num)) => serde_json::Number::from_f64(*num) |
| 31 | .map_or(serde_json::Value::Null, serde_json::Value::Number), |
| 32 | Some(prost_types::value::Kind::StringValue(val)) => serde_json::Value::String(val.clone()), |
| 33 | Some(prost_types::value::Kind::BoolValue(val)) => serde_json::Value::Bool(*val), |
| 34 | Some(prost_types::value::Kind::StructValue(val)) => { |
| 35 | serde_json::Value::Object(struct_to_json_object(val)) |
| 36 | } |
| 37 | Some(prost_types::value::Kind::ListValue(list)) => { |
| 38 | serde_json::Value::Array(list.values.iter().map(value_to_json).collect()) |
| 39 | } |
| 40 | Some(prost_types::value::Kind::NullValue(_)) | None => serde_json::Value::Null, |
| 41 | } |
| 42 | } |
| 43 | |
| 44 | /// Deserialize a present field as a non-empty list of non-empty strings. |
| 45 | /// |
no test coverage detected