pub mod access;
pub mod analyzer;
pub mod api;
pub mod bucket;
pub mod config;
pub mod database;
pub mod event;
pub mod field;
pub mod function;
pub mod index;
pub mod model;
pub mod module;
pub mod namespace;
pub mod param;
pub mod sequence;
pub mod table;
pub mod user;
pub use access::DefineAccessStatement;
pub use analyzer::DefineAnalyzerStatement;
pub use api::{ApiAction, DefineApiStatement};
pub use bucket::DefineBucketStatement;
pub use config::DefineConfigStatement;
pub use database::DefineDatabaseStatement;
pub use event::DefineEventStatement;
pub use field::{DefineDefault, DefineFieldStatement};
pub use function::DefineFunctionStatement;
pub use index::DefineIndexStatement;
pub use model::DefineModelStatement;
pub use module::DefineModuleStatement;
pub use namespace::DefineNamespaceStatement;
pub use param::DefineParamStatement;
pub use sequence::DefineSequenceStatement;
use surrealdb_types::{SqlFormat, ToSql};
pub use table::DefineTableStatement;
pub use user::DefineUserStatement;
#[derive(Clone, Debug, Default, PartialEq, Eq)]
#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
pub enum DefineKind {
#[default]
Default,
Overwrite,
IfNotExists,
}
#[derive(Clone, Debug, PartialEq, Eq)]
#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
pub enum DefineStatement {
Namespace(DefineNamespaceStatement),
Database(DefineDatabaseStatement),
Function(DefineFunctionStatement),
Analyzer(DefineAnalyzerStatement),
Param(DefineParamStatement),
Table(DefineTableStatement),
Event(DefineEventStatement),
Field(Box<DefineFieldStatement>),
Index(DefineIndexStatement),
User(DefineUserStatement),
#[cfg_attr(feature = "arbitrary", arbitrary(skip))]
Model(DefineModelStatement),
Access(DefineAccessStatement),
Config(DefineConfigStatement),
Api(DefineApiStatement),
Bucket(DefineBucketStatement),
Sequence(DefineSequenceStatement),
#[cfg_attr(feature = "arbitrary", arbitrary(skip))]
Module(DefineModuleStatement),
}
impl ToSql for DefineStatement {
fn fmt_sql(&self, f: &mut String, fmt: SqlFormat) {
match self {
Self::Namespace(v) => v.fmt_sql(f, fmt),
Self::Database(v) => v.fmt_sql(f, fmt),
Self::Function(v) => v.fmt_sql(f, fmt),
Self::User(v) => v.fmt_sql(f, fmt),
Self::Param(v) => v.fmt_sql(f, fmt),
Self::Table(v) => v.fmt_sql(f, fmt),
Self::Event(v) => v.fmt_sql(f, fmt),
Self::Field(v) => v.fmt_sql(f, fmt),
Self::Index(v) => v.fmt_sql(f, fmt),
Self::Analyzer(v) => v.fmt_sql(f, fmt),
Self::Model(v) => v.fmt_sql(f, fmt),
Self::Access(v) => v.fmt_sql(f, fmt),
Self::Config(v) => v.fmt_sql(f, fmt),
Self::Api(v) => v.fmt_sql(f, fmt),
Self::Bucket(v) => v.fmt_sql(f, fmt),
Self::Sequence(v) => v.fmt_sql(f, fmt),
Self::Module(v) => v.fmt_sql(f, fmt),
}
}
}