INNER CODE UNIT · Rust

parse_object

fcoury/oxide · src/parser/mod.rs:276

pub fn parse_object(field: &str, object: &Map<String, serde_json::Value>) -> Result<String> {
    let mut res = vec![];
    let source_flat_obj = flatten_object(object);
    let mut flat_obj: Map<String, serde_json::Value> = Map::new();
    for (key, value) in source_flat_obj {
        flat_obj.insert(format!("{}.{}", field, key), value);
    }

    for (key, v) in &flat_obj {
        let mut parts = key.split(".").collect::<Vec<&str>>();
        let mut value = OperatorValueType::Json(v.to_owned());
        let mut alternate = "".to_string();

        let oper = if parts[parts.len() - 1].starts_with("$") {
            let operator = parts.pop().unwrap();
            match operator {
                "$lt" | "$lte" | "$gt" | "$gte" | "$ne" | "$eq" => translate_operator(operator),
                "$regex" => {

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…