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