Skip to main content

surql_parser/upstream/sql/statements/
option.rs

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