Skip to main content

surrealdb_expr/expr/statements/
update.rs

1use 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}