Skip to content

Commit 8177c80

Browse files
committedJun 1, 2024·
Refactor to use let..else syntax for less indentation where possible
1 parent 5f55299 commit 8177c80

File tree

2 files changed

+40
-32
lines changed

2 files changed

+40
-32
lines changed
 

‎src/commands/index.rs

+14-11
Original file line numberDiff line numberDiff line change
@@ -171,19 +171,22 @@ pub async fn run_index(args: IndexArgs, pool: PgPool) -> Result<()> {
171171
let mut json_obj: serde_json::Map<String, serde_json::Value> = serde_json::from_str(&line)?;
172172

173173
for (name, field, parse_fn) in &field_parsers {
174-
if let Some(json_value) = json_obj.remove(name) {
175-
match parse_fn(json_value) {
176-
Ok(ParsedValue::Single(value)) => {
174+
let Some(json_value) = json_obj.remove(name) else {
175+
debug!("field '{}' in schema but not found", &name);
176+
continue;
177+
};
178+
179+
match parse_fn(json_value) {
180+
Ok(ParsedValue::Single(value)) => {
181+
doc.add_field_value(*field, value);
182+
}
183+
Ok(ParsedValue::Multiple(values)) => {
184+
for value in values {
177185
doc.add_field_value(*field, value);
178186
}
179-
Ok(ParsedValue::Multiple(values)) => {
180-
for value in values {
181-
doc.add_field_value(*field, value);
182-
}
183-
}
184-
Err(e) => {
185-
error!("failed to parse '{}': {}", &name, e);
186-
}
187+
}
188+
Err(e) => {
189+
error!("failed to parse '{}': {}", &name, e);
187190
}
188191
}
189192
}

‎src/commands/search.rs

+26-21
Original file line numberDiff line numberDiff line change
@@ -27,28 +27,33 @@ fn get_prettified_json(
2727

2828
let mut prettified_field_map = BTreeMap::new();
2929
for field in fields {
30-
if let Some(mut field_values) = named_doc.0.remove(&field.name) {
31-
if field.array {
32-
prettified_field_map.insert(field.name.clone(), OwnedValue::Array(field_values));
33-
continue;
34-
}
30+
let Some(mut field_values) = named_doc.0.remove(&field.name) else {
31+
continue;
32+
};
3533

36-
if let Some(value) = field_values.pop() {
37-
if field.name == DYNAMIC_FIELD_NAME {
38-
if let OwnedValue::Object(object) = value {
39-
for (k, v) in object {
40-
prettified_field_map.insert(k, v);
41-
}
42-
} else {
43-
return Err(eyre!(
44-
"expected {} field to be an object",
45-
DYNAMIC_FIELD_NAME
46-
));
47-
}
48-
} else {
49-
prettified_field_map.insert(field.name.clone(), value);
50-
}
51-
}
34+
if field.array {
35+
prettified_field_map.insert(field.name.clone(), OwnedValue::Array(field_values));
36+
continue;
37+
}
38+
39+
let Some(value) = field_values.pop() else {
40+
continue;
41+
};
42+
43+
if field.name != DYNAMIC_FIELD_NAME {
44+
prettified_field_map.insert(field.name.clone(), value);
45+
continue;
46+
}
47+
48+
let OwnedValue::Object(object) = value else {
49+
return Err(eyre!(
50+
"expected {} field to be an object",
51+
DYNAMIC_FIELD_NAME
52+
));
53+
};
54+
55+
for (k, v) in object {
56+
prettified_field_map.insert(k, v);
5257
}
5358
}
5459

0 commit comments

Comments
 (0)
Please sign in to comment.