Skip to main content

surrealdb_expr/expr/statements/define/
analyzer.rs

1use surrealdb_strand::Strand;
2use surrealdb_types::{SqlFormat, ToSql};
3
4use super::DefineKind;
5use crate::expr::filter::Filter;
6use crate::expr::tokenizer::Tokenizer;
7use crate::expr::{Expr, Literal};
8
9#[derive(Clone, Debug, Eq, PartialEq, Hash)]
10pub struct DefineAnalyzerStatement {
11	pub kind: DefineKind,
12	pub name: Expr,
13	pub function: Option<Strand>,
14	pub tokenizers: Option<Vec<Tokenizer>>,
15	pub filters: Option<Vec<Filter>>,
16	pub comment: Expr,
17}
18
19impl Default for DefineAnalyzerStatement {
20	fn default() -> Self {
21		Self {
22			kind: DefineKind::Default,
23			name: Expr::Literal(Literal::None),
24			function: None,
25			tokenizers: None,
26			filters: None,
27			comment: Expr::Literal(Literal::None),
28		}
29	}
30}
31impl ToSql for DefineAnalyzerStatement {
32	fn fmt_sql(&self, f: &mut String, fmt: SqlFormat) {
33		let sql_stmt: crate::sql::statements::define::DefineAnalyzerStatement = self.clone().into();
34		sql_stmt.fmt_sql(f, fmt);
35	}
36}