INNER CODE UNIT · Rust
parse_leaf
fcoury/oxide · src/parser/mod.rs:86
fn parse_leaf(leaf: LeafClause) -> Result<String> {
match leaf.value {
Value::Leaf(leaf_value) => parse_leaf_value(leaf_value, leaf.key, None),
Value::Operators(val_operators) => parse_value_operators(val_operators, leaf.key),
}
}
fn parse_value_operators(val_operators: Vec<Operator>, field: String) -> Result<String> {
let values: Result<Vec<String>> = val_operators
.into_iter()
.map(|operator| parse_operator(operator, field.clone()))
.collect();
if let Ok(values) = values {
Ok(values.join(""))
} else {
Err(values.unwrap_err())
}