Skip to main content

surrealdb_expr/expr/convert/
tokenizer.rs

1//! `sql` -> `expr` conversions for [`crate::sql::tokenizer`].
2//!
3//! Lives in core rather than beside the AST: `surrealdb-sql` sits below
4//! core, so it cannot name `expr` types.
5
6use crate::sql::tokenizer::*;
7
8impl From<SegmentLanguage> for crate::expr::SegmentLanguage {
9	fn from(v: SegmentLanguage) -> Self {
10		match v {
11			SegmentLanguage::Chinese => Self::Chinese,
12			SegmentLanguage::Japanese => Self::Japanese,
13			SegmentLanguage::Korean => Self::Korean,
14		}
15	}
16}
17
18impl From<crate::expr::SegmentLanguage> for SegmentLanguage {
19	fn from(v: crate::expr::SegmentLanguage) -> Self {
20		match v {
21			crate::expr::SegmentLanguage::Chinese => Self::Chinese,
22			crate::expr::SegmentLanguage::Japanese => Self::Japanese,
23			crate::expr::SegmentLanguage::Korean => Self::Korean,
24		}
25	}
26}
27
28impl From<Tokenizer> for crate::expr::Tokenizer {
29	fn from(v: Tokenizer) -> Self {
30		match v {
31			Tokenizer::Blank => Self::Blank,
32			Tokenizer::Camel => Self::Camel,
33			Tokenizer::Class => Self::Class,
34			Tokenizer::Punct => Self::Punct,
35			Tokenizer::Segment(l) => Self::Segment(l.into()),
36		}
37	}
38}
39
40impl From<crate::expr::Tokenizer> for Tokenizer {
41	fn from(v: crate::expr::Tokenizer) -> Self {
42		match v {
43			crate::expr::Tokenizer::Blank => Self::Blank,
44			crate::expr::Tokenizer::Camel => Self::Camel,
45			crate::expr::Tokenizer::Class => Self::Class,
46			crate::expr::Tokenizer::Punct => Self::Punct,
47			crate::expr::Tokenizer::Segment(l) => Self::Segment(l.into()),
48		}
49	}
50}