Skip to main content

surql_parser/upstream/sql/statements/define/
mod.rs

1mod 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}