surrealdb_expr/expr/statements/define/
api.rs1use surrealdb_types::{SqlFormat, ToSql};
2
3use super::DefineKind;
4use super::config::api::ApiConfig;
5use crate::expr::Expr;
6use crate::sql::ApiMethod;
7
8#[derive(Clone, Debug, Eq, PartialEq, Hash)]
9pub struct DefineApiStatement {
10 pub kind: DefineKind,
11 pub path: Expr,
12 pub actions: Vec<ApiAction>,
13 pub fallback: Option<Expr>,
14 pub config: ApiConfig,
15 pub comment: Expr,
16}
17#[derive(Clone, Debug, Eq, PartialEq, Hash)]
18pub struct ApiAction {
19 pub methods: Vec<ApiMethod>,
20 pub action: Expr,
21 pub config: ApiConfig,
22}
23
24impl ToSql for ApiAction {
25 fn fmt_sql(&self, f: &mut String, sql_fmt: SqlFormat) {
26 let stmt: crate::sql::statements::define::ApiAction = self.clone().into();
27 stmt.fmt_sql(f, sql_fmt);
28 }
29}