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