use crate::{
DynQuery, TableRef,
writer::{Context, SqlWriter},
};
pub trait Dataset {
fn qualified_columns() -> bool
where
Self: Sized;
fn write_query(&self, writer: &dyn SqlWriter, context: &mut Context, out: &mut DynQuery);
fn table_ref(&self) -> TableRef;
}
impl Dataset for &dyn Dataset {
fn qualified_columns() -> bool
where
Self: Sized,
{
unreachable!("Cannot call static qualified_columns on a dyn object directly");
}
fn write_query(&self, writer: &dyn SqlWriter, context: &mut Context, out: &mut DynQuery) {
(*self).write_query(writer, context, out)
}
fn table_ref(&self) -> TableRef {
(*self).table_ref()
}
}