Skip to main content

surrealdb_sql/statements/
use.rs

1use surrealdb_types::{SqlFormat, ToSql, write_sql};
2
3use crate::{CoverStmts, Expr};
4
5#[derive(Clone, Debug, Eq, PartialEq)]
6#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
7pub enum UseStatement {
8	Ns(Expr),
9	Db(Expr),
10	NsDb(Expr, Expr),
11	Default,
12}
13
14impl ToSql for UseStatement {
15	fn fmt_sql(&self, f: &mut String, fmt: SqlFormat) {
16		f.push_str("USE");
17		match self {
18			UseStatement::Ns(ns) => write_sql!(f, fmt, " NS {}", CoverStmts(ns)),
19			UseStatement::Db(db) => write_sql!(f, fmt, " DB {}", CoverStmts(db)),
20			UseStatement::NsDb(ns, db) => {
21				write_sql!(f, fmt, " NS {} DB {}", CoverStmts(ns), CoverStmts(db))
22			}
23			UseStatement::Default => {
24				write_sql!(f, fmt, " DEFAULT")
25			}
26		}
27	}
28}