Skip to main content

surrealdb_expr/expr/statements/define/
function.rs

1use surrealdb_strand::Strand;
2use surrealdb_types::{SqlFormat, ToSql};
3
4use super::DefineKind;
5use crate::expr::permission::Permission;
6use crate::expr::{Block, Expr, Kind};
7
8#[derive(Clone, Debug, Eq, PartialEq, Hash)]
9pub struct DefineFunctionStatement {
10	pub kind: DefineKind,
11	pub name: Strand,
12	pub args: Vec<(String, Kind)>,
13	pub block: Block,
14	pub comment: Expr,
15	pub permissions: Permission,
16	pub returns: Option<Kind>,
17	pub graphql_alias: Option<String>,
18	pub graphql_deprecated: Option<String>,
19}
20
21impl ToSql for DefineFunctionStatement {
22	fn fmt_sql(&self, f: &mut String, fmt: SqlFormat) {
23		let stmt: crate::sql::statements::define::DefineFunctionStatement = self.clone().into();
24		stmt.fmt_sql(f, fmt);
25	}
26}