surrealdb_sql/statements/define/config/
mod.rs1pub mod api;
2pub mod defaults;
3use surrealdb_types::{SqlFormat, ToSql};
4pub mod graphql;
5
6use api::ApiConfig;
7use defaults::DefaultConfig;
8pub use graphql::GraphQLConfig;
9
10use super::DefineKind;
11
12#[derive(Clone, Debug, PartialEq, Eq)]
13#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
14pub struct DefineConfigStatement {
15 pub kind: DefineKind,
16 pub inner: ConfigInner,
17}
18
19#[derive(Clone, Debug, PartialEq, Eq)]
20#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
21pub enum ConfigInner {
22 GraphQL(GraphQLConfig),
23 Api(ApiConfig),
24 Default(DefaultConfig),
25}
26
27impl ToSql for DefineConfigStatement {
28 fn fmt_sql(&self, f: &mut String, fmt: SqlFormat) {
29 f.push_str("DEFINE CONFIG");
30 match self.kind {
31 DefineKind::Default => {}
32 DefineKind::Overwrite => f.push_str(" OVERWRITE"),
33 DefineKind::IfNotExists => f.push_str(" IF NOT EXISTS"),
34 }
35
36 f.push(' ');
37 self.inner.fmt_sql(f, fmt);
38 }
39}
40
41impl ToSql for ConfigInner {
42 fn fmt_sql(&self, f: &mut String, fmt: SqlFormat) {
43 match &self {
44 ConfigInner::GraphQL(v) => v.fmt_sql(f, fmt),
45 ConfigInner::Api(v) => {
46 f.push_str("API");
47 v.fmt_sql(f, fmt);
48 }
49 ConfigInner::Default(v) => v.fmt_sql(f, fmt),
50 }
51 }
52}