Skip to content

Commit

Permalink
Refactor to use let..else syntax for less indentation where possible
Browse files Browse the repository at this point in the history
  • Loading branch information
tontinton committed Jun 1, 2024
1 parent 5f55299 commit 8177c80
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 32 deletions.
25 changes: 14 additions & 11 deletions src/commands/index.rs
Original file line number Diff line number Diff line change
Expand Up @@ -171,19 +171,22 @@ pub async fn run_index(args: IndexArgs, pool: PgPool) -> Result<()> {
let mut json_obj: serde_json::Map<String, serde_json::Value> = serde_json::from_str(&line)?;

for (name, field, parse_fn) in &field_parsers {
if let Some(json_value) = json_obj.remove(name) {
match parse_fn(json_value) {
Ok(ParsedValue::Single(value)) => {
let Some(json_value) = json_obj.remove(name) else {
debug!("field '{}' in schema but not found", &name);
continue;
};

match parse_fn(json_value) {
Ok(ParsedValue::Single(value)) => {
doc.add_field_value(*field, value);
}
Ok(ParsedValue::Multiple(values)) => {
for value in values {
doc.add_field_value(*field, value);
}
Ok(ParsedValue::Multiple(values)) => {
for value in values {
doc.add_field_value(*field, value);
}
}
Err(e) => {
error!("failed to parse '{}': {}", &name, e);
}
}
Err(e) => {
error!("failed to parse '{}': {}", &name, e);
}
}
}
Expand Down
47 changes: 26 additions & 21 deletions src/commands/search.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,28 +27,33 @@ fn get_prettified_json(

let mut prettified_field_map = BTreeMap::new();
for field in fields {
if let Some(mut field_values) = named_doc.0.remove(&field.name) {
if field.array {
prettified_field_map.insert(field.name.clone(), OwnedValue::Array(field_values));
continue;
}
let Some(mut field_values) = named_doc.0.remove(&field.name) else {
continue;
};

if let Some(value) = field_values.pop() {
if field.name == DYNAMIC_FIELD_NAME {
if let OwnedValue::Object(object) = value {
for (k, v) in object {
prettified_field_map.insert(k, v);
}
} else {
return Err(eyre!(
"expected {} field to be an object",
DYNAMIC_FIELD_NAME
));
}
} else {
prettified_field_map.insert(field.name.clone(), value);
}
}
if field.array {
prettified_field_map.insert(field.name.clone(), OwnedValue::Array(field_values));
continue;
}

let Some(value) = field_values.pop() else {
continue;
};

if field.name != DYNAMIC_FIELD_NAME {
prettified_field_map.insert(field.name.clone(), value);
continue;
}

let OwnedValue::Object(object) = value else {
return Err(eyre!(
"expected {} field to be an object",
DYNAMIC_FIELD_NAME
));
};

for (k, v) in object {
prettified_field_map.insert(k, v);
}
}

Expand Down

0 comments on commit 8177c80

Please sign in to comment.