1use crate::{
2 DynQuery, TableRef,
3 writer::{Context, SqlWriter},
4};
5
6pub trait Dataset {
10 fn qualified_columns() -> bool
12 where
13 Self: Sized;
14 fn write_query(&self, writer: &dyn SqlWriter, context: &mut Context, out: &mut DynQuery);
16 fn table_ref(&self) -> TableRef;
18}
19
20impl Dataset for &dyn Dataset {
21 fn qualified_columns() -> bool
22 where
23 Self: Sized,
24 {
25 unreachable!("Cannot call static qualified_columns on a dyn object directly");
26 }
27 fn write_query(&self, writer: &dyn SqlWriter, context: &mut Context, out: &mut DynQuery) {
28 (*self).write_query(writer, context, out)
29 }
30 fn table_ref(&self) -> TableRef {
31 (*self).table_ref()
32 }
33}