surrealdb_expr/expr/statements/alter/
access.rs1use std::time::Duration;
2
3use surrealdb_types::{SqlFormat, ToSql};
4
5use super::AlterKind;
6use crate::expr::{Base, Expr, Literal};
7
8#[derive(Clone, Debug, Eq, PartialEq, Hash)]
9pub struct AlterAccessStatement {
10 pub name: Expr,
11 pub base: Base,
12 pub if_exists: bool,
13 pub authenticate: AlterKind<Expr>,
14 pub context: AlterKind<Expr>,
15 pub grant_duration: AlterKind<Option<Duration>>,
16 pub token_duration: AlterKind<Option<Duration>>,
17 pub session_duration: AlterKind<Option<Duration>>,
18 pub comment: AlterKind<String>,
19}
20
21impl Default for AlterAccessStatement {
22 fn default() -> Self {
23 Self {
24 name: Expr::Literal(Literal::None),
25 base: Base::Root,
26 if_exists: false,
27 authenticate: AlterKind::None,
28 context: AlterKind::None,
29 grant_duration: AlterKind::None,
30 token_duration: AlterKind::None,
31 session_duration: AlterKind::None,
32 comment: AlterKind::None,
33 }
34 }
35}
36
37impl ToSql for AlterAccessStatement {
38 fn fmt_sql(&self, f: &mut String, fmt: SqlFormat) {
39 let stmt: crate::sql::statements::alter::AlterAccessStatement = self.clone().into();
40 stmt.fmt_sql(f, fmt);
41 }
42}