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