pub fn parse_conflict<T: ToEdgeQuery + Clone, R: Conflict<T>>(
    conflict: &R,
    query_fields: Vec<&str>
) -> String
Expand 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 )");
}