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