surql_parser/upstream/sql/statements/define/
mod.rs1mod access;
2mod analyzer;
3mod api;
4mod bucket;
5pub mod config;
6mod database;
7mod event;
8mod field;
9mod function;
10mod index;
11mod model;
12mod module;
13mod namespace;
14mod param;
15mod sequence;
16mod table;
17pub mod user;
18pub use access::DefineAccessStatement;
19pub use analyzer::DefineAnalyzerStatement;
20pub use api::{ApiAction, DefineApiStatement};
21pub use bucket::DefineBucketStatement;
22pub use config::DefineConfigStatement;
23pub use database::DefineDatabaseStatement;
24pub use event::DefineEventStatement;
25pub use field::{DefineDefault, DefineFieldStatement};
26pub use function::DefineFunctionStatement;
27pub use index::DefineIndexStatement;
28pub use model::DefineModelStatement;
29pub use module::DefineModuleStatement;
30pub use namespace::DefineNamespaceStatement;
31pub use param::DefineParamStatement;
32pub use sequence::DefineSequenceStatement;
33use surrealdb_types::{SqlFormat, ToSql};
34pub use table::DefineTableStatement;
35pub use user::DefineUserStatement;
36#[derive(Clone, Debug, Default, PartialEq, Eq)]
37#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
38pub enum DefineKind {
39 #[default]
40 Default,
41 Overwrite,
42 IfNotExists,
43}
44#[derive(Clone, Debug, PartialEq, Eq)]
45#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
46pub enum DefineStatement {
47 Namespace(DefineNamespaceStatement),
48 Database(DefineDatabaseStatement),
49 Function(DefineFunctionStatement),
50 Analyzer(DefineAnalyzerStatement),
51 Param(DefineParamStatement),
52 Table(DefineTableStatement),
53 Event(DefineEventStatement),
54 Field(DefineFieldStatement),
55 Index(DefineIndexStatement),
56 User(DefineUserStatement),
57 #[cfg_attr(feature = "arbitrary", arbitrary(skip))]
58 Model(DefineModelStatement),
59 Access(DefineAccessStatement),
60 Config(DefineConfigStatement),
61 Api(DefineApiStatement),
62 Bucket(DefineBucketStatement),
63 Sequence(DefineSequenceStatement),
64 #[cfg_attr(feature = "arbitrary", arbitrary(skip))]
65 Module(DefineModuleStatement),
66}
67impl ToSql for DefineStatement {
68 fn fmt_sql(&self, f: &mut String, fmt: SqlFormat) {
69 match self {
70 Self::Namespace(v) => v.fmt_sql(f, fmt),
71 Self::Database(v) => v.fmt_sql(f, fmt),
72 Self::Function(v) => v.fmt_sql(f, fmt),
73 Self::User(v) => v.fmt_sql(f, fmt),
74 Self::Param(v) => v.fmt_sql(f, fmt),
75 Self::Table(v) => v.fmt_sql(f, fmt),
76 Self::Event(v) => v.fmt_sql(f, fmt),
77 Self::Field(v) => v.fmt_sql(f, fmt),
78 Self::Index(v) => v.fmt_sql(f, fmt),
79 Self::Analyzer(v) => v.fmt_sql(f, fmt),
80 Self::Model(v) => v.fmt_sql(f, fmt),
81 Self::Access(v) => v.fmt_sql(f, fmt),
82 Self::Config(v) => v.fmt_sql(f, fmt),
83 Self::Api(v) => v.fmt_sql(f, fmt),
84 Self::Bucket(v) => v.fmt_sql(f, fmt),
85 Self::Sequence(v) => v.fmt_sql(f, fmt),
86 Self::Module(v) => v.fmt_sql(f, fmt),
87 }
88 }
89}