surrealdb_sql/statements/
option.rs1use 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}