Skip to main content

surrealdb_sql/statements/remove/
config.rs

1use surrealdb_types::{SqlFormat, ToSql};
2
3#[derive(Clone, Debug, Default, Eq, PartialEq, Hash)]
4#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
5pub enum RemoveConfigKind {
6	#[default]
7	GraphQL,
8	Api,
9	Default,
10}
11
12#[derive(Clone, Debug, Default, Eq, PartialEq, Hash)]
13#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
14pub struct RemoveConfigStatement {
15	pub kind: RemoveConfigKind,
16	pub if_exists: bool,
17}
18
19impl ToSql for RemoveConfigStatement {
20	fn fmt_sql(&self, f: &mut String, _fmt: SqlFormat) {
21		f.push_str("REMOVE CONFIG");
22		if self.if_exists {
23			f.push_str(" IF EXISTS");
24		}
25		match self.kind {
26			RemoveConfigKind::GraphQL => f.push_str(" GRAPHQL"),
27			RemoveConfigKind::Api => f.push_str(" API"),
28			RemoveConfigKind::Default => f.push_str(" DEFAULT"),
29		}
30	}
31}
32
33impl From<RemoveConfigKind> for surrealdb_iam::ConfigKind {
34	fn from(v: RemoveConfigKind) -> Self {
35		match v {
36			RemoveConfigKind::GraphQL => surrealdb_iam::ConfigKind::GraphQL,
37			RemoveConfigKind::Api => surrealdb_iam::ConfigKind::Api,
38			RemoveConfigKind::Default => surrealdb_iam::ConfigKind::Default,
39		}
40	}
41}
42
43impl From<surrealdb_iam::ConfigKind> for RemoveConfigKind {
44	fn from(v: surrealdb_iam::ConfigKind) -> Self {
45		match v {
46			surrealdb_iam::ConfigKind::GraphQL => RemoveConfigKind::GraphQL,
47			surrealdb_iam::ConfigKind::Api => RemoveConfigKind::Api,
48			surrealdb_iam::ConfigKind::Default => RemoveConfigKind::Default,
49		}
50	}
51}