surrealdb_expr/expr/statements/
update.rs1use surrealdb_types::{SqlFormat, ToSql};
2
3use crate::expr::{Cond, Data, Explain, Expr, Literal, Output, With};
4
5#[derive(Clone, Debug, Eq, PartialEq, Hash)]
6pub struct UpdateStatement {
7 pub only: bool,
8 pub what: Vec<Expr>,
9 pub with: Option<With>,
10 pub data: Option<Data>,
11 pub cond: Option<Cond>,
12 pub output: Option<Output>,
13 pub timeout: Expr,
14 pub explain: Option<Explain>,
15}
16
17impl Default for UpdateStatement {
18 fn default() -> Self {
19 Self {
20 only: Default::default(),
21 what: Default::default(),
22 with: Default::default(),
23 data: Default::default(),
24 cond: Default::default(),
25 output: Default::default(),
26 timeout: Expr::Literal(Literal::None),
27 explain: Default::default(),
28 }
29 }
30}
31
32impl ToSql for UpdateStatement {
33 fn fmt_sql(&self, f: &mut String, fmt: SqlFormat) {
34 let stmt: crate::sql::statements::update::UpdateStatement = self.clone().into();
35 stmt.fmt_sql(f, fmt);
36 }
37}