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" => {