(&mut self, entry: &MessageInfo)
| 868 | } |
| 869 | |
| 870 | fn map_field_schema(&mut self, entry: &MessageInfo) -> Result<Value> { |
| 871 | let mut value_field = None; |
| 872 | for field in &entry.descriptor.field { |
| 873 | if field.number.unwrap_or_default() == 2 { |
| 874 | value_field = Some(field.clone()); |
| 875 | } |
| 876 | } |
| 877 | let value_field = value_field |
| 878 | .ok_or_else(|| anyhow!("map entry {} is missing value field", entry.full_name))?; |
| 879 | let value_schema = self.scalar_schema(&value_field)?; |
| 880 | Ok(json!({ |
| 881 | "type": "object", |
| 882 | "additionalProperties": value_schema |
| 883 | })) |
| 884 | } |
| 885 | |
| 886 | fn finish(self) -> Map<String, Value> { |
| 887 | let mut map = Map::new(); |
no test coverage detected