INNER CODE UNIT · Rust
parse
fcoury/oxide · src/parser/mod.rs:43
pub fn parse(doc: Document) -> Result<String> {
if doc.is_empty() {
return Ok("".to_string());
}
let bson: Bson = doc.into();
let json = serde_json::Value::Object(
expand_object(bson.into_psql_json().as_object().unwrap()).unwrap(),
);
let str = serde_json::to_string(&json)?;
let expression = mongodb_language_model::parse(&str)?;
log::trace!("{:#?}", expression);
parse_expression(expression)
}
fn parse_expression(expression: Expression) -> Result<String> {
parse_clauses(expression.clauses)
}