Skip to main content

surrealdb_expr/expr/statements/alter/
access.rs

1use 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}