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

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…