#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct Dialect {
name: &'static str,
}
impl Dialect {
#[must_use]
pub const fn name(self) -> &'static str {
self.name
}
}
pub const DIALECTS: &[Dialect] = &[Dialect { name: "duckdb" }];
#[must_use]
pub fn dialect_named(name: &str) -> Option<Dialect> {
DIALECTS.iter().copied().find(|dialect| dialect.name.eq_ignore_ascii_case(name))
}
#[cfg(test)]
mod tests {
use super::{DIALECTS, dialect_named};
#[test]
fn the_vendored_grammar_is_the_one_registered_dialect() {
assert_eq!(DIALECTS.len(), 1);
assert_eq!(dialect_named("DUCKDB").map(|dialect| dialect.name()), Some("duckdb"));
assert_eq!(dialect_named("cypher"), None);
}
}