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