Skip to main content

surrealdb_expr/expr/statements/
delete.rs

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