Function edgedb_query::queries::conflict::parse_conflict
source · pub fn parse_conflict<T: ToEdgeQuery + Clone, R: Conflict<T>>(
conflict: &R,
query_fields: Vec<&str>
) -> StringExpand description
parse a conflict into a string statement
Examples
use edgedb_protocol::value::Value;
use edgedb_query::queries::conflict::{UnlessConflictElse, Conflict, parse_conflict};
use edgedb_query::{ToEdgeQl, ToEdgeQuery, ToEdgeValue};
#[derive(Clone)]
pub struct FindUser {}
impl ToEdgeQl for FindUser {
fn to_edgeql(&self) -> String {
format!("select users")
}
}
impl ToEdgeValue for FindUser {
fn to_edge_value(&self) -> Value {
Value::Nothing
}
}
impl ToEdgeQuery for FindUser {}
fn main() {
let insert_conflict = UnlessConflictElse {
fields: Some(vec!["name", "age"]),
else_query: Some(FindUser{}),
};
let stmt = parse_conflict(&insert_conflict, vec![]);
assert_eq!(stmt, " unless conflict on ( .name, .age ) else ( select users )");
}