Skip to main content

surql_parser/upstream/sql/
tokenizer.rs

1use std::fmt;
2use std::fmt::Display;
3use surrealdb_types::{SqlFormat, ToSql, write_sql};
4#[derive(Clone, Debug, Eq, PartialEq, Hash)]
5#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
6pub enum Tokenizer {
7	Blank,
8	Camel,
9	Class,
10	Punct,
11}
12impl Display for Tokenizer {
13	fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
14		f.write_str(match self {
15			Self::Blank => "BLANK",
16			Self::Camel => "CAMEL",
17			Self::Class => "CLASS",
18			Self::Punct => "PUNCT",
19		})
20	}
21}
22impl ToSql for Tokenizer {
23	fn fmt_sql(&self, f: &mut String, sql_fmt: SqlFormat) {
24		write_sql!(
25			f,
26			sql_fmt,
27			"{}",
28			match self {
29				Self::Blank => "BLANK",
30				Self::Camel => "CAMEL",
31				Self::Class => "CLASS",
32				Self::Punct => "PUNCT",
33			}
34		)
35	}
36}