limbo_sqlite3_parser/to_sql_string/
mod.rs1mod expr;
4mod stmt;
5
6use crate::ast::TableReferenceId;
7
8pub trait ToSqlContext {
10 fn get_table_name(&self, id: TableReferenceId) -> &str;
14 fn get_column_name(&self, table_id: TableReferenceId, col_idx: usize) -> &str;
16}
17
18pub trait ToSqlString {
20 fn to_sql_string<C: ToSqlContext>(&self, context: &C) -> String;
22}
23
24impl<T: ToSqlString> ToSqlString for Box<T> {
25 fn to_sql_string<C: ToSqlContext>(&self, context: &C) -> String {
26 T::to_sql_string(&self, context)
27 }
28}
29
30#[cfg(test)]
31mod tests {
32 use super::ToSqlContext;
33
34 struct TestContext;
35
36 impl ToSqlContext for TestContext {
37 fn get_column_name(
38 &self,
39 _table_id: crate::ast::TableReferenceId,
40 _col_idx: usize,
41 ) -> &str {
42 "placeholder_column"
43 }
44
45 fn get_table_name(&self, _id: crate::ast::TableReferenceId) -> &str {
46 "placeholder_table"
47 }
48 }
49}