Skip to main content

surrealdb_expr/expr/convert/statements/alter/
analyzer.rs

1//! `sql` -> `expr` conversions for [`crate::sql::statements::alter::analyzer`].
2//!
3//! Lives in core rather than beside the AST: `surrealdb-sql` sits below
4//! core, so it cannot name `expr` types.
5
6use crate::sql::statements::alter::AlterKind;
7use crate::sql::statements::alter::analyzer::*;
8
9impl From<AlterAnalyzerStatement> for crate::expr::statements::alter::AlterAnalyzerStatement {
10	fn from(v: AlterAnalyzerStatement) -> Self {
11		crate::expr::statements::alter::AlterAnalyzerStatement {
12			name: v.name.into(),
13			if_exists: v.if_exists,
14			function: v.function.into(),
15			tokenizers: match v.tokenizers {
16				AlterKind::Set(x) => crate::expr::statements::alter::AlterKind::Set(
17					x.into_iter().map(Into::into).collect(),
18				),
19				AlterKind::Drop => crate::expr::statements::alter::AlterKind::Drop,
20				AlterKind::None => crate::expr::statements::alter::AlterKind::None,
21			},
22			filters: match v.filters {
23				AlterKind::Set(x) => crate::expr::statements::alter::AlterKind::Set(
24					x.into_iter().map(Into::into).collect(),
25				),
26				AlterKind::Drop => crate::expr::statements::alter::AlterKind::Drop,
27				AlterKind::None => crate::expr::statements::alter::AlterKind::None,
28			},
29			comment: v.comment.into(),
30		}
31	}
32}
33
34impl From<crate::expr::statements::alter::AlterAnalyzerStatement> for AlterAnalyzerStatement {
35	fn from(v: crate::expr::statements::alter::AlterAnalyzerStatement) -> Self {
36		AlterAnalyzerStatement {
37			name: v.name.into(),
38			if_exists: v.if_exists,
39			function: v.function.into(),
40			tokenizers: match v.tokenizers {
41				crate::expr::statements::alter::AlterKind::Set(x) => {
42					AlterKind::Set(x.into_iter().map(Into::into).collect())
43				}
44				crate::expr::statements::alter::AlterKind::Drop => AlterKind::Drop,
45				crate::expr::statements::alter::AlterKind::None => AlterKind::None,
46			},
47			filters: match v.filters {
48				crate::expr::statements::alter::AlterKind::Set(x) => {
49					AlterKind::Set(x.into_iter().map(Into::into).collect())
50				}
51				crate::expr::statements::alter::AlterKind::Drop => AlterKind::Drop,
52				crate::expr::statements::alter::AlterKind::None => AlterKind::None,
53			},
54			comment: v.comment.into(),
55		}
56	}
57}