1#[derive(Debug, Clone, Copy, PartialEq, Eq)]
5pub enum Dialect {
6 QuestionMark,
8 DollarNumbered,
10}
11
12impl Dialect {
13 #[allow(dead_code)]
14 pub(crate) fn write_placeholder(self, index_1_based: usize, out: &mut String) {
15 match self {
16 Self::QuestionMark => out.push('?'),
17 Self::DollarNumbered => {
18 out.push('$');
19 out.push_str(&index_1_based.to_string());
20 }
21 }
22 }
23}
24
25#[cfg(test)]
26mod tests {
27 use super::Dialect;
28
29 #[test]
30 fn write_placeholder_question_mark() {
31 let mut s = String::new();
32 Dialect::QuestionMark.write_placeholder(1, &mut s);
33 assert_eq!(s, "?");
34 }
35
36 #[test]
37 fn write_placeholder_dollar_numbered() {
38 let mut s = String::new();
39 Dialect::DollarNumbered.write_placeholder(12, &mut s);
40 assert_eq!(s, "$12");
41 }
42}