(
ctx: &rquickjs::Ctx<'js>,
val: &prost_types::Value,
)
| 75 | } |
| 76 | |
| 77 | fn _struct_to_rquickjs<'js>( |
| 78 | ctx: &rquickjs::Ctx<'js>, |
| 79 | val: &prost_types::Value, |
| 80 | ) -> rquickjs::Value<'js> { |
| 81 | match &val.kind { |
| 82 | None => rquickjs::Value::new_null(ctx.clone()), |
| 83 | Some(val) => match val { |
| 84 | prost_types::value::Kind::NullValue(_) => rquickjs::Value::new_null(ctx.clone()), |
| 85 | prost_types::value::Kind::NumberValue(v) => rquickjs::Value::new_float(ctx.clone(), *v), |
| 86 | prost_types::value::Kind::StringValue(v) => { |
| 87 | rquickjs::Value::from_string(rquickjs::String::from_str(ctx.clone(), v).unwrap()) |
| 88 | } |
| 89 | prost_types::value::Kind::BoolValue(v) => rquickjs::Value::new_bool(ctx.clone(), *v), |
| 90 | prost_types::value::Kind::StructValue(v) => { |
| 91 | let out = rquickjs::Object::new(ctx.clone()).unwrap(); |
| 92 | for (k, v) in &v.fields { |
| 93 | out.set(k, _struct_to_rquickjs(ctx, v)).unwrap(); |
| 94 | } |
| 95 | rquickjs::Value::from_object(out) |
| 96 | } |
| 97 | prost_types::value::Kind::ListValue(v) => { |
| 98 | let out = rquickjs::Array::new(ctx.clone()).unwrap(); |
| 99 | for (i, v) in v.values.iter().enumerate() { |
| 100 | out.set(i, _struct_to_rquickjs(ctx, v)).unwrap(); |
| 101 | } |
| 102 | rquickjs::Value::from_array(out) |
| 103 | } |
| 104 | }, |
| 105 | } |
| 106 | } |
| 107 | |
| 108 | pub fn pb_json_to_prost(obj: &pbjson_types::Struct) -> prost_types::Struct { |
| 109 | let mut out = prost_types::Struct::default(); |
no test coverage detected