surrealdb_expr/expr/
tokenizer.rs1use std::fmt;
2use std::fmt::Display;
3
4use revision::revisioned;
5
6#[revisioned(revision = 1)]
15#[derive(Clone, Copy, Debug, Eq, PartialEq, Hash)]
16pub enum SegmentLanguage {
17 Chinese,
18 Japanese,
19 Korean,
20}
21
22impl SegmentLanguage {
23 pub fn as_str(self) -> &'static str {
24 match self {
25 Self::Chinese => "CHINESE",
26 Self::Japanese => "JAPANESE",
27 Self::Korean => "KOREAN",
28 }
29 }
30}
31
32impl Display for SegmentLanguage {
33 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
34 f.write_str(self.as_str())
35 }
36}
37
38#[revisioned(revision = 2)]
39#[derive(Clone, Copy, Debug, Eq, PartialEq, Hash)]
40pub enum Tokenizer {
41 Blank,
42 Camel,
43 Class,
44 Punct,
45 #[revision(start = 2)]
53 Segment(SegmentLanguage),
54}
55
56impl Display for Tokenizer {
57 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
58 match self {
59 Self::Blank => f.write_str("BLANK"),
60 Self::Camel => f.write_str("CAMEL"),
61 Self::Class => f.write_str("CLASS"),
62 Self::Punct => f.write_str("PUNCT"),
63 Self::Segment(l) => write!(f, "SEGMENT({l})"),
64 }
65 }
66}