INNER CODE UNIT · Rust
parse_clause
fcoury/oxide · src/parser/mod.rs:79
fn parse_clause(clause: Clause) -> Result<String> {
match clause {
Clause::Leaf(leaf) => parse_leaf(leaf),
Clause::ExpressionTree(exp_tree) => parse_expression_tree(exp_tree),
}
}
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()))