INNER CODE UNIT · Rust
parse_operator
fcoury/oxide · src/parser/mod.rs:106
fn parse_operator(oper: Operator, field: String) -> Result<String> {
match oper {
Operator::Value(value_oper) => parse_value_operator(value_oper, field.clone()),
Operator::ExpressionOperator(expr_oper) => parse_expression_operator(expr_oper, field),
Operator::List(list_oper) => parse_list_operator(list_oper, field),
}
}
fn parse_list_operator(list_oper: ListOperator, field: String) -> Result<String> {
match list_oper.operator.as_str() {
"$in" | "$nin" => {
let values: Vec<serde_json::Value> = list_oper
.values
.into_iter()
.map(|leaf_value| leaf_value.value)
.collect();
let jsonb_field = if field.contains(".") {
let fields = field