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 = "postgres")]
27pub mod postgres;
28#[cfg(feature = "postgres")]
29mod postgres_keywords;
30#[cfg(feature = "redshift")]
31pub mod redshift;
32#[cfg(feature = "redshift")]
33mod redshift_keywords;
34#[cfg(feature = "snowflake")]
35pub mod snowflake;
36#[cfg(feature = "snowflake")]
37mod snowflake_keywords;
38#[cfg(feature = "sparksql")]
39pub mod sparksql;
40#[cfg(feature = "sparksql")]
41mod sparksql_keywords;
42#[cfg(feature = "sqlite")]
43pub mod sqlite;
44#[cfg(feature = "sqlite")]
45mod sqlite_keywords;
46#[cfg(feature = "trino")]
47pub mod trino;
48#[cfg(feature = "trino")]
49mod trino_keywords;
50
51pub fn kind_to_dialect(kind: &DialectKind) -> Option<Dialect> {
52    #[allow(unreachable_patterns)]
53    Some(match kind {
54        DialectKind::Ansi => ansi::dialect(),
55        #[cfg(feature = "athena")]
56        DialectKind::Athena => athena::dialect(),
57        #[cfg(feature = "bigquery")]
58        DialectKind::Bigquery => bigquery::dialect(),
59        #[cfg(feature = "clickhouse")]
60        DialectKind::Clickhouse => clickhouse::dialect(),
61        #[cfg(feature = "databricks")]
62        DialectKind::Databricks => databricks::dialect(),
63        #[cfg(feature = "duckdb")]
64        DialectKind::Duckdb => duckdb::dialect(),
65        #[cfg(feature = "postgres")]
66        DialectKind::Postgres => postgres::dialect(),
67        #[cfg(feature = "redshift")]
68        DialectKind::Redshift => redshift::dialect(),
69        #[cfg(feature = "snowflake")]
70        DialectKind::Snowflake => snowflake::dialect(),
71        #[cfg(feature = "sparksql")]
72        DialectKind::Sparksql => sparksql::dialect(),
73        #[cfg(feature = "sqlite")]
74        DialectKind::Sqlite => sqlite::dialect(),
75        #[cfg(feature = "trino")]
76        DialectKind::Trino => trino::dialect(),
77        _ => return None,
78    })
79}