summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Masurel <paul.masurel@gmail.com>2019-09-03 09:22:32 +0900
committerPaul Masurel <paul.masurel@gmail.com>2019-09-03 09:22:32 +0900
commit5196ca41d86c52b48e6bed102bd6c1a44b6f1a07 (patch)
tree502330186e911b10a91eb54213c2c0cbaaf997cc
parent4959e061514107e170edbba5530925a8039e4972 (diff)
Small code clean up
-rw-r--r--src/schema/schema.rs38
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)