surrealdb/sql/
filter.rs

1use crate::sql::language::Language;
2use revision::revisioned;
3use serde::{Deserialize, Serialize};
4use std::fmt;
5use std::fmt::Display;
6
7#[derive(Clone, Debug, Eq, PartialEq, PartialOrd, Serialize, Deserialize, Hash)]
8#[revisioned(revision = 1)]
9pub enum Filter {
10	Ascii,
11	EdgeNgram(u16, u16),
12	Lowercase,
13	Ngram(u16, u16),
14	Snowball(Language),
15	Uppercase,
16}
17
18impl Display for Filter {
19	fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
20		match self {
21			Self::Ascii => f.write_str("ASCII"),
22			Self::EdgeNgram(min, max) => write!(f, "EDGENGRAM({},{})", min, max),
23			Self::Lowercase => f.write_str("LOWERCASE"),
24			Self::Ngram(min, max) => write!(f, "NGRAM({},{})", min, max),
25			Self::Snowball(lang) => write!(f, "SNOWBALL({})", lang),
26			Self::Uppercase => f.write_str("UPPERCASE"),
27		}
28	}
29}