1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
use crate::dsl;
use crate::expression::TypedExpressionType;
use crate::expression::ValidGrouping;
use crate::query_builder::AsQuery;
use crate::query_builder::FromClause;
use crate::query_builder::SelectStatement;
use crate::query_source::Table;
use crate::Expression;
pub trait BoxedDsl<'a, DB> {
type Output;
fn internal_into_boxed(self) -> dsl::IntoBoxed<'a, Self, DB>;
}
impl<'a, T, DB> BoxedDsl<'a, DB> for T
where
T: Table + AsQuery<Query = SelectStatement<FromClause<T>>>,
SelectStatement<FromClause<T>>: BoxedDsl<'a, DB>,
T::DefaultSelection: Expression<SqlType = T::SqlType> + ValidGrouping<()>,
T::SqlType: TypedExpressionType,
{
type Output = dsl::IntoBoxed<'a, SelectStatement<FromClause<T>>, DB>;
fn internal_into_boxed(self) -> Self::Output {
self.as_query().internal_into_boxed()
}
}