Skip to main content

surrealdb_expr/expr/convert/statements/alter/
access.rs

1//! `sql` -> `expr` conversions for [`crate::sql::statements::alter::access`].
2//!
3//! Lives in core rather than beside the AST: `surrealdb-sql` sits below
4//! core, so it cannot name `expr` types.
5
6use crate::sql::statements::alter::AlterKind;
7use crate::sql::statements::alter::access::*;
8
9impl From<AlterAccessStatement> for crate::expr::statements::alter::AlterAccessStatement {
10	fn from(v: AlterAccessStatement) -> Self {
11		crate::expr::statements::alter::AlterAccessStatement {
12			name: v.name.into(),
13			base: v.base.into(),
14			if_exists: v.if_exists,
15			authenticate: v.authenticate.into(),
16			context: v.context.into(),
17			grant_duration: match v.grant_duration {
18				AlterKind::Set(d) => crate::expr::statements::alter::AlterKind::Set(Some(d)),
19				AlterKind::Drop => crate::expr::statements::alter::AlterKind::Set(None),
20				AlterKind::None => crate::expr::statements::alter::AlterKind::None,
21			},
22			token_duration: match v.token_duration {
23				AlterKind::Set(d) => crate::expr::statements::alter::AlterKind::Set(Some(d)),
24				AlterKind::Drop => crate::expr::statements::alter::AlterKind::Set(None),
25				AlterKind::None => crate::expr::statements::alter::AlterKind::None,
26			},
27			session_duration: match v.session_duration {
28				AlterKind::Set(d) => crate::expr::statements::alter::AlterKind::Set(Some(d)),
29				AlterKind::Drop => crate::expr::statements::alter::AlterKind::Set(None),
30				AlterKind::None => crate::expr::statements::alter::AlterKind::None,
31			},
32			comment: v.comment.into(),
33		}
34	}
35}
36
37impl From<crate::expr::statements::alter::AlterAccessStatement> for AlterAccessStatement {
38	fn from(v: crate::expr::statements::alter::AlterAccessStatement) -> Self {
39		AlterAccessStatement {
40			name: v.name.into(),
41			base: v.base.into(),
42			if_exists: v.if_exists,
43			authenticate: v.authenticate.into(),
44			context: v.context.into(),
45			grant_duration: match v.grant_duration {
46				crate::expr::statements::alter::AlterKind::Set(Some(d)) => AlterKind::Set(d),
47				crate::expr::statements::alter::AlterKind::Set(None) => AlterKind::Drop,
48				crate::expr::statements::alter::AlterKind::Drop => AlterKind::Drop,
49				crate::expr::statements::alter::AlterKind::None => AlterKind::None,
50			},
51			token_duration: match v.token_duration {
52				crate::expr::statements::alter::AlterKind::Set(Some(d)) => AlterKind::Set(d),
53				crate::expr::statements::alter::AlterKind::Set(None) => AlterKind::Drop,
54				crate::expr::statements::alter::AlterKind::Drop => AlterKind::Drop,
55				crate::expr::statements::alter::AlterKind::None => AlterKind::None,
56			},
57			session_duration: match v.session_duration {
58				crate::expr::statements::alter::AlterKind::Set(Some(d)) => AlterKind::Set(d),
59				crate::expr::statements::alter::AlterKind::Set(None) => AlterKind::Drop,
60				crate::expr::statements::alter::AlterKind::Drop => AlterKind::Drop,
61				crate::expr::statements::alter::AlterKind::None => AlterKind::None,
62			},
63			comment: v.comment.into(),
64		}
65	}
66}