Skip to main content

surrealdb_expr/expr/
with.rs

1use common::fmt::{EscapeKwFreeIdent, Fmt};
2use surrealdb_types::{SqlFormat, ToSql};
3
4#[derive(Clone, Debug, Eq, PartialEq, Hash)]
5pub enum With {
6	NoIndex,
7	Index(Vec<String>),
8}
9
10impl ToSql for With {
11	fn fmt_sql(&self, f: &mut String, fmt: SqlFormat) {
12		f.push_str("WITH");
13		match self {
14			With::NoIndex => f.push_str(" NOINDEX"),
15			With::Index(i) => {
16				f.push_str(" INDEX ");
17				Fmt::comma_separated(i.iter().map(|x| EscapeKwFreeIdent(x.as_str())))
18					.fmt_sql(f, fmt)
19			}
20		}
21	}
22}