sqruff_lib_dialects/
lib.rs

1use sqruff_lib_core::dialects::base::Dialect;
2use sqruff_lib_core::dialects::init::DialectKind;
3
4pub mod ansi;
5mod ansi_keywords;
6#[cfg(feature = "athena")]
7pub mod athena;
8#[cfg(feature = "athena")]
9mod athena_keywords;
10#[cfg(feature = "bigquery")]
11pub mod bigquery;
12#[cfg(feature = "bigquery")]
13mod bigquery_keywords;
14#[cfg(feature = "clickhouse")]
15pub mod clickhouse;
16#[cfg(feature = "clickhouse")]
17mod clickhouse_keywords;
18#[cfg(feature = "databricks")]
19pub mod databricks;
20#[cfg(feature = "databricks")]
21pub mod databricks_keywords;
22#[cfg(feature = "duckdb")]
23pub mod duckdb;
24#[cfg(feature = "hive")]
25pub mod hive;
26#[cfg(feature = "mysql")]
27pub mod mysql;
28#[cfg(feature = "postgres")]
29pub mod postgres;
30#[cfg(feature = "postgres")]
31mod postgres_keywords;
32#[cfg(feature = "redshift")]
33pub mod redshift;
34#[cfg(feature = "redshift")]
35mod redshift_keywords;
36#[cfg(feature = "snowflake")]
37pub mod snowflake;
38#[cfg(feature = "snowflake")]
39mod snowflake_keywords;
40#[cfg(feature = "sparksql")]
41pub mod sparksql;
42#[cfg(feature = "sparksql")]
43mod sparksql_keywords;
44#[cfg(feature = "sqlite")]
45pub mod sqlite;
46#[cfg(feature = "sqlite")]
47mod sqlite_keywords;
48#[cfg(feature = "trino")]
49pub mod trino;
50#[cfg(feature = "trino")]
51mod trino_keywords;
52
53pub fn kind_to_dialect(kind: &DialectKind) -> Option<Dialect> {
54    #[allow(unreachable_patterns)]
55    Some(match kind {
56        DialectKind::Ansi => ansi::dialect(),
57        #[cfg(feature = "athena")]
58        DialectKind::Athena => athena::dialect(),
59        #[cfg(feature = "bigquery")]
60        DialectKind::Bigquery => bigquery::dialect(),
61        #[cfg(feature = "clickhouse")]
62        DialectKind::Clickhouse => clickhouse::dialect(),
63        #[cfg(feature = "databricks")]
64        DialectKind::Databricks => databricks::dialect(),
65        #[cfg(feature = "duckdb")]
66        DialectKind::Duckdb => duckdb::dialect(),
67        #[cfg(feature = "mysql")]
68        DialectKind::Mysql => mysql::dialect(),
69        #[cfg(feature = "postgres")]
70        DialectKind::Postgres => postgres::dialect(),
71        #[cfg(feature = "redshift")]
72        DialectKind::Redshift => redshift::dialect(),
73        #[cfg(feature = "snowflake")]
74        DialectKind::Snowflake => snowflake::dialect(),
75        #[cfg(feature = "sparksql")]
76        DialectKind::Sparksql => sparksql::dialect(),
77        #[cfg(feature = "sqlite")]
78        DialectKind::Sqlite => sqlite::dialect(),
79        #[cfg(feature = "trino")]
80        DialectKind::Trino => trino::dialect(),
81        _ => return None,
82    })
83}