Skip to main content

surrealdb_expr/expr/statements/define/
database.rs

1use super::DefineKind;
2use crate::expr::changefeed::ChangeFeed;
3use crate::expr::statements::info::InfoStructure;
4use crate::expr::{Expr, Literal};
5use crate::val::Value;
6
7#[derive(Clone, Debug, Eq, PartialEq, Hash)]
8pub struct DefineDatabaseStatement {
9	pub kind: DefineKind,
10	pub id: Option<u32>,
11	pub name: Expr,
12	pub strict: bool,
13	pub comment: Expr,
14	pub changefeed: Option<ChangeFeed>,
15}
16
17impl Default for DefineDatabaseStatement {
18	fn default() -> Self {
19		Self {
20			kind: DefineKind::Default,
21			id: None,
22			name: Expr::Literal(Literal::None),
23			comment: Expr::Literal(Literal::None),
24			changefeed: None,
25			strict: false,
26		}
27	}
28}
29impl InfoStructure for DefineDatabaseStatement {
30	fn structure(self) -> Value {
31		Value::from(map! {
32			"name" => self.name.structure(),
33			"comment" => self.comment.structure(),
34		})
35	}
36}