Skip to main content

surrealdb_sql/statements/
option.rs

1use common::fmt::EscapeKwFreeIdent;
2use surrealdb_strand::Strand;
3use surrealdb_types::{SqlFormat, ToSql, write_sql};
4
5#[derive(Clone, Debug, Default, Eq, PartialEq, PartialOrd, Hash)]
6#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
7pub struct OptionStatement {
8	pub name: Strand,
9	pub what: bool,
10}
11
12impl OptionStatement {
13	pub fn import() -> Self {
14		Self {
15			name: Strand::new_static("IMPORT"),
16			what: true,
17		}
18	}
19}
20
21impl ToSql for OptionStatement {
22	fn fmt_sql(&self, f: &mut String, fmt: SqlFormat) {
23		if self.what {
24			write_sql!(f, fmt, "OPTION {}", EscapeKwFreeIdent(self.name.as_str()))
25		} else {
26			write_sql!(f, fmt, "OPTION {} = FALSE", EscapeKwFreeIdent(self.name.as_str()))
27		}
28	}
29}