Skip to main content

surrealdb_expr/expr/statements/define/
mod.rs

1pub 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, kind_contains_object};
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;
34pub use table::DefineTableStatement;
35pub use user::DefineUserStatement;
36
37#[derive(Clone, Debug, Default, Eq, PartialEq, PartialOrd, Hash)]
38pub enum DefineKind {
39	#[default]
40	Default,
41	Overwrite,
42	IfNotExists,
43}
44
45#[derive(Clone, Debug, Eq, PartialEq, Hash)]
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	/// Boxed, like its `sql` twin: it is by far the largest variant, so an
55	/// unboxed one sizes every `DefineStatement` allocation to it.
56	Field(Box<DefineFieldStatement>),
57	Index(DefineIndexStatement),
58	User(DefineUserStatement),
59	Model(DefineModelStatement),
60	Access(DefineAccessStatement),
61	Config(DefineConfigStatement),
62	Api(DefineApiStatement),
63	Bucket(DefineBucketStatement),
64	Sequence(DefineSequenceStatement),
65	Module(DefineModuleStatement),
66}