sqruff_lib_core/dialects/
init.rs1use strum::IntoEnumIterator;
2use strum_macros::AsRefStr;
3
4#[derive(
5 strum_macros::EnumString,
6 strum_macros::EnumIter,
7 AsRefStr,
8 Debug,
9 Clone,
10 Copy,
11 Default,
12 Ord,
13 PartialOrd,
14 Eq,
15 PartialEq,
16 Hash,
17)]
18#[strum(serialize_all = "snake_case")]
19pub enum DialectKind {
20 #[default]
21 Ansi,
22 Athena,
23 Bigquery,
24 Clickhouse,
25 Databricks,
26 Duckdb,
27 Postgres,
28 Redshift,
29 Snowflake,
30 Sparksql,
31 Sqlite,
32 Trino,
33}
34
35pub fn dialect_readout() -> Vec<String> {
37 DialectKind::iter()
38 .map(|x| x.as_ref().to_string())
39 .collect()
40}
41
42#[cfg(test)]
43mod tests {
44 #[test]
45 fn dialect_readout_is_alphabetically_sorted() {
46 let readout = super::dialect_readout();
47
48 let mut sorted = readout.clone();
49 sorted.sort();
50
51 assert_eq!(readout, sorted);
52 }
53}