//! ToSqlString trait definition and implementations mod expr; mod stmt; use crate::ast::TableInternalId; /// Context to be used in ToSqlString pub trait ToSqlContext { /// Given an id, get the table name /// /// Currently not considering aliases fn get_table_name(&self, id: TableInternalId) -> &str; /// Given a table id and a column index, get the column name fn get_column_name(&self, table_id: TableInternalId, col_idx: usize) -> String; } #[cfg(test)] mod tests { use super::ToSqlContext; struct TestContext; impl ToSqlContext for TestContext { fn get_column_name( &self, _table_id: crate::ast::TableInternalId, _col_idx: usize, ) -> String { "placeholder_column".to_string() } fn get_table_name(&self, _id: crate::ast::TableInternalId) -> &str { "placeholder_table" } } }