Skip to main content

surql_parser/upstream/sql/
base.rs

1use std::fmt;
2use surrealdb_types::{SqlFormat, ToSql, write_sql};
3#[derive(Clone, Debug, Default, Eq, PartialEq, PartialOrd, Hash)]
4#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
5pub enum Base {
6	#[default]
7	Root,
8	Ns,
9	Db,
10}
11impl fmt::Display for Base {
12	fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
13		match self {
14			Self::Ns => f.write_str("NAMESPACE"),
15			Self::Db => f.write_str("DATABASE"),
16			Self::Root => f.write_str("ROOT"),
17		}
18	}
19}
20impl ToSql for Base {
21	fn fmt_sql(&self, f: &mut String, _fmt: SqlFormat) {
22		match self {
23			Self::Ns => write_sql!(f, sql_fmt, "NAMESPACE"),
24			Self::Db => write_sql!(f, sql_fmt, "DATABASE"),
25			Self::Root => write_sql!(f, sql_fmt, "ROOT"),
26		}
27	}
28}