surrealdb_expr/expr/statements/define/
analyzer.rs1use 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}