surrealdb_core/sql/
with.rs1use std::fmt::{Display, Formatter, Result};
2
3#[derive(Clone, Debug, Eq, PartialEq, Hash)]
4#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
5pub enum With {
6 NoIndex,
7 Index(Vec<String>),
8}
9
10impl Display for With {
11 fn fmt(&self, f: &mut Formatter) -> Result {
12 f.write_str("WITH")?;
13 match self {
14 With::NoIndex => f.write_str(" NOINDEX"),
15 With::Index(i) => {
16 f.write_str(" INDEX ")?;
17 f.write_str(&i.join(","))
18 }
19 }
20 }
21}
22
23impl From<With> for crate::expr::With {
24 fn from(v: With) -> Self {
25 match v {
26 With::NoIndex => Self::NoIndex,
27 With::Index(i) => Self::Index(i),
28 }
29 }
30}
31impl From<crate::expr::With> for With {
32 fn from(v: crate::expr::With) -> Self {
33 match v {
34 crate::expr::With::NoIndex => Self::NoIndex,
35 crate::expr::With::Index(i) => Self::Index(i),
36 }
37 }
38}