Skip to main content

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

1//! `sql` -> `expr` conversions for [`crate::sql::statements::alter::function`].
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::function::*;
8
9impl From<AlterFunctionStatement> for crate::expr::statements::alter::AlterFunctionStatement {
10	fn from(v: AlterFunctionStatement) -> Self {
11		crate::expr::statements::alter::AlterFunctionStatement {
12			name: v.name,
13			if_exists: v.if_exists,
14			args: match v.args {
15				AlterKind::Set(x) => crate::expr::statements::alter::AlterKind::Set(
16					x.into_iter().map(|(n, k)| (n, k.into())).collect(),
17				),
18				AlterKind::Drop => crate::expr::statements::alter::AlterKind::Drop,
19				AlterKind::None => crate::expr::statements::alter::AlterKind::None,
20			},
21			block: v.block.into(),
22			comment: v.comment.into(),
23			permissions: v.permissions.map(Into::into),
24			returns: v.returns.into(),
25		}
26	}
27}
28
29impl From<crate::expr::statements::alter::AlterFunctionStatement> for AlterFunctionStatement {
30	fn from(v: crate::expr::statements::alter::AlterFunctionStatement) -> Self {
31		AlterFunctionStatement {
32			name: v.name,
33			if_exists: v.if_exists,
34			args: match v.args {
35				crate::expr::statements::alter::AlterKind::Set(x) => {
36					AlterKind::Set(x.into_iter().map(|(n, k)| (n, k.into())).collect())
37				}
38				crate::expr::statements::alter::AlterKind::Drop => AlterKind::Drop,
39				crate::expr::statements::alter::AlterKind::None => AlterKind::None,
40			},
41			block: v.block.into(),
42			comment: v.comment.into(),
43			permissions: v.permissions.map(Into::into),
44			returns: v.returns.into(),
45		}
46	}
47}