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