diff options
author | Paul Masurel <paul.masurel@gmail.com> | 2019-09-03 09:22:32 +0900 |
---|---|---|
committer | Paul Masurel <paul.masurel@gmail.com> | 2019-09-03 09:22:32 +0900 |
commit | 5196ca41d86c52b48e6bed102bd6c1a44b6f1a07 (patch) | |
tree | 502330186e911b10a91eb54213c2c0cbaaf997cc | |
parent | 4959e061514107e170edbba5530925a8039e4972 (diff) |
Small code clean up
-rw-r--r-- | src/schema/schema.rs | 38 |
1 files changed, 18 insertions, 20 deletions
diff --git a/src/schema/schema.rs b/src/schema/schema.rs index b244585..57da5f3 100644 --- a/src/schema/schema.rs +++ b/src/schema/schema.rs @@ -301,28 +301,26 @@ impl Schema { let mut doc = Document::default(); for (field_name, json_value) in json_obj.iter() { - match self.get_field(field_name) { - Some(field) => { - let field_entry = self.get_field_entry(field); - let field_type = field_entry.field_type(); - match *json_value { - JsonValue::Array(ref json_items) => { - for json_item in json_items { - let value = field_type.value_from_json(json_item).map_err(|e| { - DocParsingError::ValueError(field_name.clone(), e) - })?; - doc.add(FieldValue::new(field, value)); - } - } - _ => { - let value = field_type - .value_from_json(json_value) - .map_err(|e| DocParsingError::ValueError(field_name.clone(), e))?; - doc.add(FieldValue::new(field, value)); - } + let field = self + .get_field(field_name) + .ok_or_else(|| DocParsingError::NoSuchFieldInSchema(field_name.clone()))?; + let field_entry = self.get_field_entry(field); + let field_type = field_entry.field_type(); + match *json_value { + JsonValue::Array(ref json_items) => { + for json_item in json_items { + let value = field_type + .value_from_json(json_item) + .map_err(|e| DocParsingError::ValueError(field_name.clone(), e))?; + doc.add(FieldValue::new(field, value)); } } - None => return Err(DocParsingError::NoSuchFieldInSchema(field_name.clone())), + _ => { + let value = field_type + .value_from_json(json_value) + .map_err(|e| DocParsingError::ValueError(field_name.clone(), e))?; + doc.add(FieldValue::new(field, value)); + } } } Ok(doc) |