1use crate::associations::BelongsTo;
2use crate::backend::Backend;
3use crate::deserialize::{
4 self, FromSqlRow, FromStaticSqlRow, Queryable, SqlTypeOrSelectable, StaticallySizedRow,
5};
6use crate::expression::{
7 AppearsOnTable, Expression, IsContainedInGroupBy, MixedAggregates, QueryMetadata, Selectable,
8 SelectableExpression, TypedExpressionType, ValidGrouping, is_contained_in_group_by,
9};
10use crate::insertable::{CanInsertInSingleQuery, InsertValues, Insertable, InsertableOptionHelper};
11#[cfg(any(
12 feature = "__sqlite-shared",
13 feature = "postgres_backend",
14 feature = "mysql_backend"
15))]
16use crate::query_builder::update_statement::batch_update::{BatchKeyHelper, BatchValueHelper};
17use crate::query_builder::*;
18use crate::query_dsl::load_dsl::CompatibleType;
19use crate::query_source::*;
20use crate::result::QueryResult;
21use crate::row::*;
22use crate::sql_types::{HasSqlType, IntoNullable, Nullable, OneIsNullable, SqlType};
23use crate::util::{TupleAppend, TupleSize};
24use alloc::vec::Vec;
25
26impl<T> TupleSize for T
27where
28 T: crate::sql_types::SingleValue,
29{
30 const SIZE: usize = 1;
31}
32
33macro_rules! fake_variadic {
34 (1i32 -> $($tt: tt)*) => {
35 #[cfg_attr(diesel_docsrs, doc(fake_variadic))]
36 $($tt)*
37 };
38 ($idx:tt -> $($tt: tt)*) => {
39 #[cfg_attr(diesel_docsrs, doc(hidden))]
40 $($tt)*
41 };
42}
43
44macro_rules! tuple_impls {
45 ($(
46 $Tuple:tt {
47 $(($idx:tt) -> $T:ident, $ST:ident, $TT:ident,)+
48 }
49 )+) => {
50 $(
51 fake_variadic!{
52 $Tuple ->
53 impl<$($T),+, __DB> HasSqlType<($($T,)+)> for __DB where
54 $(__DB: HasSqlType<$T>),+,
55 __DB: Backend,
56 {
57 fn metadata(_: &mut __DB::MetadataLookup) -> __DB::TypeMetadata {
58 unreachable!("Tuples should never implement `ToSql` directly");
59 }
60 }
61 }
62
63 impl_from_sql_row!(($($T,)+), ($($ST,)+));
64
65
66 fake_variadic! {
67 $Tuple ->
68 #[diagnostic::do_not_recommend]
69 impl<$($T: Expression),+> Expression for ($($T,)+)
70 where ($($T::SqlType, )*): TypedExpressionType
71 {
72 type SqlType = ($(<$T as Expression>::SqlType,)+);
73 }
74 }
75 fake_variadic! {
76 $Tuple -> impl<$($T: TypedExpressionType,)*> TypedExpressionType for ($($T,)*) {}
77 }
78 fake_variadic! {
79 $Tuple ->
80 impl<$($T: SqlType + TypedExpressionType,)*> TypedExpressionType for Nullable<($($T,)*)>
81 where ($($T,)*): SqlType
82 {
83 }
84 }
85 fake_variadic! {
86 $Tuple ->
87 impl<$($T: SqlType,)*> IntoNullable for ($($T,)*)
88 where Self: SqlType,
89 {
90 type Nullable = Nullable<($($T,)*)>;
91 }
92 }
93
94 fake_variadic! {
95 $Tuple ->
96 impl<$($T,)+ __DB> Selectable<__DB> for ($($T,)+)
97 where
98 __DB: Backend,
99 $($T: Selectable<__DB>),+,
100 {
101 type SelectExpression = ($($T::SelectExpression,)+);
102
103 fn construct_selection() -> Self::SelectExpression {
104 ($($T::construct_selection(),)+)
105 }
106 }
107 }
108
109 fake_variadic! {
110 $Tuple ->
111 impl<$($T: QueryFragment<__DB>),+, __DB: Backend> QueryFragment<__DB> for ($($T,)+) {
112 #[allow(unused_assignments)]
113 fn walk_ast<'b>(&'b self, mut out: AstPass<'_, 'b, __DB>) -> QueryResult<()>
114 {
115 let mut needs_comma = false;
116 $(
117 if !self.$idx.is_noop(out.backend())? {
118 if needs_comma {
119 out.push_sql(", ");
120 }
121 self.$idx.walk_ast(out.reborrow())?;
122 needs_comma = true;
123 }
124 )+
125 Ok(())
126 }
127 }
128 }
129
130 impl<$($T,)+ Tab> ColumnList for ($($T,)+)
133 where
134 $($T: ColumnList<Table = Tab>,)+
135 {
136 type Table = Tab;
137
138 fn walk_ast<__DB: Backend>(&self, mut out: AstPass<'_, '_, __DB>) -> QueryResult<()> {
139 $(
140 if $idx != 0 {
141 out.push_sql(", ");
142 }
143 self.$idx.walk_ast(out.reborrow())?;
144 )+
145 Ok(())
146 }
147 }
148
149 fake_variadic! {
150 $Tuple ->
151 impl<$($T: QueryId),+> QueryId for ($($T,)+) {
152 type QueryId = ($($T::QueryId,)+);
153
154 const HAS_STATIC_QUERY_ID: bool = $($T::HAS_STATIC_QUERY_ID &&)+ true;
155 }
156 }
157
158 impl_valid_grouping_for_tuple_of_columns!($($T,)*);
159
160 impl<$($T,)+ Tab> UndecoratedInsertRecord<Tab> for ($($T,)+)
161 where
162 $($T: UndecoratedInsertRecord<Tab>,)+
163 {
164 }
165
166 impl<$($T,)+ __DB> CanInsertInSingleQuery<__DB> for ($($T,)+)
167 where
168 __DB: Backend,
169 $($T: CanInsertInSingleQuery<__DB>,)+
170 {
171 fn rows_to_insert(&self) -> Option<usize> {
172 $(debug_assert_eq!(self.$idx.rows_to_insert(), Some(1));)+
173 Some(1)
174 }
175 }
176
177 fake_variadic! {
178 $Tuple ->
179 impl<$($T,)+ $($ST,)+ Tab> Insertable<Tab> for ($($T,)+)
180 where
181 $($T: Insertable<Tab, Values = ValuesClause<$ST, Tab>>,)+
182 {
183 type Values = ValuesClause<($($ST,)+), Tab>;
184
185 fn values(self) -> Self::Values {
186 ValuesClause::new(($(self.$idx.values().values,)+))
187 }
188 }
189 }
190
191 impl<'a, $($T,)+ Tab> Insertable<Tab> for &'a ($($T,)+)
195 where
196 ($(&'a $T,)+): Insertable<Tab>,
197 {
198 type Values = <($(&'a $T,)+) as Insertable<Tab>>::Values;
199
200 fn values(self) -> Self::Values {
201 ($(&self.$idx,)+).values()
202 }
203 }
204#[allow(unused_assignments)]
207 impl<$($T,)+ Tab, __DB> InsertValues<__DB, Tab> for ($($T,)+)
208 where
209 Tab: Table,
210 __DB: Backend,
211 $($T: InsertValues<__DB, Tab>,)+
212 {
213 fn column_names(&self, mut out: AstPass<'_, '_, __DB>) -> QueryResult<()> {
214 let mut needs_comma = false;
215 $(
216 let noop_element = self.$idx.is_noop(out.backend())?;
217 if !noop_element {
218 if needs_comma {
219 out.push_sql(", ");
220 }
221 self.$idx.column_names(out.reborrow())?;
222 needs_comma = true;
223 }
224 )+
225 Ok(())
226 }
227 }
228
229 impl<__T, $($ST,)* Tab> Insertable<Tab> for InsertableOptionHelper<__T, ($($ST,)*)>
230 where
231 __T: Insertable<Tab>,
232 __T::Values: Default,
233 {
234 type Values = __T::Values;
235
236 fn values(self) -> Self::Values {
237 self.0.map(|v| v.values()).unwrap_or_default()
238 }
239 }
240
241 impl<$($T,)+ QS> SelectableExpression<QS> for ($($T,)+) where
245 $($T: SelectableExpression<QS>,)+
246 ($($T,)+): AppearsOnTable<QS>,
247 {
248 }
249
250 fake_variadic! {
251 $Tuple ->
252 impl<$($T,)+ QS> AppearsOnTable<QS> for ($($T,)+) where
253 $($T: AppearsOnTable<QS>,)+
254 ($($T,)+): Expression,
255 {
256 }
257 }
258
259 #[cfg(any(feature = "__sqlite-shared", feature = "postgres_backend", feature = "mysql_backend"))]
260 impl<$($T,)+ __DB> BatchValueHelper<__DB> for ($($T,)+)
261 where
262 $($T: BatchValueHelper<__DB>,)+
263 __DB: Backend
264 {
265 fn assign<'b>(&'b self, mut out: AstPass<'_, 'b, __DB>) -> QueryResult<()> {
266 $(
267 if $idx != 0 {
268 out.push_sql(", ");
269 }
270 self.$idx.assign(out.reborrow())?;
271 )+
272 Ok(())
273 }
274 fn column_name<'b>(&'b self, mut out: AstPass<'_, 'b, __DB>) -> QueryResult<()> {
275 $(
276 if $idx != 0 {
277 out.push_sql(", ");
278 }
279 self.$idx.column_name(out.reborrow())?;
280 )+
281 Ok(())
282 }
283 fn bind_value<'b>(&'b self, mut out: AstPass<'_, 'b, __DB>) -> QueryResult<()> {
284 $(
285 if $idx != 0 {
286 out.push_sql(", ");
287 }
288 self.$idx.bind_value(out.reborrow())?;
289 )+
290 Ok(())
291 }
292 }
293
294 #[cfg(any(feature = "__sqlite-shared", feature = "postgres_backend", feature = "mysql_backend"))]
295 impl<$($T,)+ $($ST,)+ __DB> BatchKeyHelper<($($ST,)*), __DB> for ($($T,)+)
296 where
297 __DB: Backend,
298 $($T: BatchKeyHelper<$ST, __DB>,)+
299 {
300 fn bind_value<'b>(&'b self, mut out: AstPass<'_, 'b, __DB>) -> QueryResult<()> {
301 $(
302 if $idx != 0 {
303 out.push_sql(", ");
304 }
305 self.$idx.bind_value(out.reborrow())?;
306 )+
307 Ok(())
308 }
309
310 fn column_name<'b>(&'b self, mut out: AstPass<'_, 'b, __DB>) -> QueryResult<()> {
311 $(
312 if $idx != 0 {
313 out.push_sql(", ");
314 }
315 self.$idx.column_name(out.reborrow())?;
316 )+
317 Ok(())
318 }
319
320 fn assign<'b>(pk: &'b ($($ST,)+), mut out: AstPass<'_, 'b, __DB>) -> QueryResult<()> {
321 $(
322 if $idx != 0 {
323 out.push_sql(" AND ");
324 }
325 <$T as BatchKeyHelper<$ST, __DB>>::assign(&pk.$idx, out.reborrow())?;
326 )+
327 Ok(())
328 }
329 }
330
331 impl<$($T,)* W> crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>
332 for ($($T,)*)
333 where $($T: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,)* {
334 }
335
336 impl<'a, $($T,)* DB> crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a, DB>>
337 for ($($T,)*)
338 where
339 DB: crate::backend::Backend,
340 $($T: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a, DB>>,)* {
341 }
342
343 impl<'a, $($T,)*> crate::query_builder::update_statement::changeset::IntoOwned for ($(&'a $T,)*)
344 where $(&'a $T: crate::query_builder::update_statement::changeset::IntoOwned,)*
345 {
346 type Owned = ($(<&'a $T as crate::query_builder::update_statement::changeset::IntoOwned>::Owned,)*);
347
348 fn into_owned(self) -> Self::Owned {
349 ($(<&'a $T as crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.$idx),)*)
350 }
351 }
352
353 fake_variadic! {
354 $Tuple ->
355 impl<Target, $($T,)+> AsChangeset for ($($T,)+) where
356 $($T: AsChangeset<Target=Target>,)+
357 Target: QuerySource,
358 {
359 type Target = Target;
360 type Changeset = ($($T::Changeset,)+);
361
362 fn as_changeset(self) -> Self::Changeset {
363 ($(self.$idx.as_changeset(),)+)
364 }
365 }
366 }
367
368 fake_variadic! {
369 $Tuple ->
370 impl<$($T,)+ Parent> BelongsTo<Parent> for ($($T,)+) where
371 T: BelongsTo<Parent>,
372 {
373 type ForeignKey = T::ForeignKey;
374 type ForeignKeyColumn = T::ForeignKeyColumn;
375
376 fn foreign_key(&self) -> Option<&Self::ForeignKey> {
377 self.0.foreign_key()
378 }
379
380 fn foreign_key_column() -> Self::ForeignKeyColumn {
381 T::foreign_key_column()
382 }
383 }
384 }
385
386 impl<$($T,)+ Next> TupleAppend<Next> for ($($T,)+) {
387 type Output = ($($T,)+ Next);
388
389 #[allow(non_snake_case)]
390 fn tuple_append(self, next: Next) -> Self::Output {
391 let ($($T,)+) = self;
392 ($($T,)+ next)
393 }
394 }
395
396 impl_sql_type!($($T,)*);
397
398 fake_variadic! {
399 $Tuple ->
400 impl<$($T,)* __DB, $($ST,)*> Queryable<($($ST,)*), __DB> for ($($T,)*)
401 where __DB: Backend,
402 Self: FromStaticSqlRow<($($ST,)*), __DB>,
403 {
404 type Row = Self;
405
406 fn build(row: Self::Row) -> deserialize::Result<Self> {
407 Ok(row)
408 }
409 }
410 }
411
412 impl<__T, $($ST,)* __DB> FromStaticSqlRow<Nullable<($($ST,)*)>, __DB> for Option<__T> where
416 __DB: Backend,
417 ($($ST,)*): SqlType,
418 __T: FromSqlRow<($($ST,)*), __DB>,
419 {
420
421 #[allow(non_snake_case, unused_variables, unused_mut)]
422 fn build_from_row<'a>(row: &impl Row<'a, __DB>)
423 -> deserialize::Result<Self>
424 {
425 match <__T as FromSqlRow<($($ST,)*), __DB>>::build_from_row(row) {
426 Ok(v) => Ok(Some(v)),
427 Err(e) if e.is::<crate::result::UnexpectedNullError>() => Ok(None),
428 Err(e) => Err(e)
429 }
430 }
431 }
432 impl<__T, __DB, $($ST,)*> Queryable<Nullable<($($ST,)*)>, __DB> for Option<__T>
438 where __DB: Backend,
439 Self: FromStaticSqlRow<Nullable<($($ST,)*)>, __DB>,
440 ($($ST,)*): SqlType,
441 {
442 type Row = Self;
443
444 fn build(row: Self::Row) -> deserialize::Result<Self> {
445 Ok(row)
446 }
447 }
448 impl<$($T,)*> TupleSize for ($($T,)*)
451 where $($T: TupleSize,)*
452 {
453 const SIZE: usize = $($T::SIZE +)* 0;
454 }
455
456 impl<$($T,)*> TupleSize for Nullable<($($T,)*)>
457 where $($T: TupleSize,)*
458 ($($T,)*): SqlType,
459 {
460 const SIZE: usize = $($T::SIZE +)* 0;
461 }
462
463 fake_variadic! {
464 $Tuple ->
465 impl<$($T,)* __DB> QueryMetadata<($($T,)*)> for __DB
466 where __DB: Backend,
467 $(__DB: QueryMetadata<$T>,)*
468 {
469 fn row_metadata(lookup: &mut Self::MetadataLookup, row: &mut Vec<Option<__DB::TypeMetadata>>) {
470 $(
471 <__DB as QueryMetadata<$T>>::row_metadata(lookup, row);
472 )*
473 }
474 }
475 }
476
477 impl<$($T,)* __DB> QueryMetadata<Nullable<($($T,)*)>> for __DB
481 where __DB: Backend,
482 $(__DB: QueryMetadata<$T>,)*
483 {
484 fn row_metadata(lookup: &mut Self::MetadataLookup, row: &mut Vec<Option<__DB::TypeMetadata>>) {
485 $(
486 <__DB as QueryMetadata<$T>>::row_metadata(lookup, row);
487 )*
488 }
489 }
490 fake_variadic! {
493 $Tuple ->
494 impl<$($T,)* __DB> deserialize::QueryableByName< __DB> for ($($T,)*)
495 where __DB: Backend,
496 $($T: deserialize::QueryableByName<__DB>,)*
497 {
498 fn build<'a>(row: &impl NamedRow<'a, __DB>) -> deserialize::Result<Self> {
499 Ok(($(
500 <$T as deserialize::QueryableByName<__DB>>::build(row)?,
501 )*))
502 }
503 }
504 }
505
506 #[diagnostic::do_not_recommend]
507 impl<__T, $($ST,)* __DB> CompatibleType<__T, __DB> for ($($ST,)*)
508 where
509 __DB: Backend,
510 __T: FromSqlRow<($($ST,)*), __DB>,
511 {
512 type SqlType = Self;
513 }
514
515 impl<__T, $($ST,)* __DB> CompatibleType<Option<__T>, __DB> for Nullable<($($ST,)*)>
516 where
517 __DB: Backend,
518 ($($ST,)*): CompatibleType<__T, __DB>
519 {
520 type SqlType = Nullable<<($($ST,)*) as CompatibleType<__T, __DB>>::SqlType>;
521 }
522
523 impl<$($ST,)*> SqlTypeOrSelectable for ($($ST,)*)
524 where $($ST: SqlTypeOrSelectable,)*
525 {}
526
527 impl<$($ST,)*> SqlTypeOrSelectable for Nullable<($($ST,)*)>
528 where ($($ST,)*): SqlTypeOrSelectable
529 {}
530 )+
531 }
532}
533
534macro_rules! impl_from_sql_row {
535 (($T1: ident,), ($ST1: ident,)) => {
536 #[cfg_attr(diesel_docsrs, doc(fake_variadic))]
537 impl<$T1, $ST1, __DB> crate::deserialize::FromStaticSqlRow<($ST1,), __DB> for ($T1,) where
538 __DB: Backend,
539 $ST1: CompatibleType<$T1, __DB>,
540 $T1: FromSqlRow<<$ST1 as CompatibleType<$T1, __DB>>::SqlType, __DB>,
541 {
542
543 #[allow(non_snake_case, unused_variables, unused_mut)]
544 fn build_from_row<'a>(row: &impl Row<'a, __DB>)
545 -> deserialize::Result<Self>
546 {
547 Ok(($T1::build_from_row(row)?,))
548 }
549 }
550 };
551 (($T1: ident, $($T: ident,)*), ($ST1: ident, $($ST: ident,)*)) => {
552 #[cfg_attr(diesel_docsrs, doc(hidden))]
553 #[diagnostic::do_not_recommend]
554 impl<$T1, $($T,)* $($ST,)* __DB> FromSqlRow<($($ST,)* crate::sql_types::Untyped), __DB> for ($($T,)* $T1)
555 where __DB: Backend,
556 $T1: FromSqlRow<crate::sql_types::Untyped, __DB>,
557 $(
558 $T: FromSqlRow<$ST, __DB> + StaticallySizedRow<$ST, __DB>,
559 )*
560 {
561 #[allow(non_snake_case, unused_variables, unused_mut)]
562 fn build_from_row<'a>(full_row: &impl Row<'a, __DB>)
563 -> deserialize::Result<Self>
564 {
565 let field_count = full_row.field_count();
566
567 let mut static_field_count = 0;
568 $(
569 let row = full_row.partial_row(static_field_count..static_field_count + $T::FIELD_COUNT);
570 static_field_count += $T::FIELD_COUNT;
571 let $T = $T::build_from_row(&row)?;
572 )*
573
574 let row = full_row.partial_row(static_field_count..field_count);
575
576 Ok(($($T,)* $T1::build_from_row(&row)?,))
577 }
578 }
579
580 #[cfg_attr(diesel_docsrs, doc(hidden))]
581 impl<$T1, $ST1, $($T,)* $($ST,)* __DB> FromStaticSqlRow<($($ST,)* $ST1,), __DB> for ($($T,)* $T1,) where
582 __DB: Backend,
583 $ST1: CompatibleType<$T1, __DB>,
584 $T1: FromSqlRow<<$ST1 as CompatibleType<$T1, __DB>>::SqlType, __DB>,
585 $(
586 $ST: CompatibleType<$T, __DB>,
587 $T: FromSqlRow<<$ST as CompatibleType<$T, __DB>>::SqlType, __DB> + StaticallySizedRow<<$ST as CompatibleType<$T, __DB>>::SqlType, __DB>,
588 )*
589
590 {
591
592 #[allow(non_snake_case, unused_variables, unused_mut)]
593 fn build_from_row<'a>(full_row: &impl Row<'a, __DB>)
594 -> deserialize::Result<Self>
595 {
596 let field_count = full_row.field_count();
597
598 let mut static_field_count = 0;
599 $(
600 let row = full_row.partial_row(static_field_count..static_field_count + $T::FIELD_COUNT);
601 static_field_count += $T::FIELD_COUNT;
602 let $T = <$T as FromSqlRow<<$ST as CompatibleType<$T, __DB>>::SqlType, __DB>>::build_from_row(&row)?;
603 )*
604
605 let row = full_row.partial_row(static_field_count..field_count);
606
607 Ok(($($T,)* $T1::build_from_row(&row)?,))
608 }
609 }
610 }
611}
612
613macro_rules! impl_valid_grouping_for_tuple_of_columns {
614 ($T1: ident, $($T: ident,)+) => {
615 #[cfg_attr(diesel_docsrs, doc(hidden))]
616 impl<$T1, $($T,)* __GroupByClause> ValidGrouping<__GroupByClause> for ($T1, $($T,)*)
617 where
618 $T1: ValidGrouping<__GroupByClause>,
619 ($($T,)*): ValidGrouping<__GroupByClause>,
620 $T1::IsAggregate: MixedAggregates<<($($T,)*) as ValidGrouping<__GroupByClause>>::IsAggregate>,
621 {
622 type IsAggregate = <$T1::IsAggregate as MixedAggregates<<($($T,)*) as ValidGrouping<__GroupByClause>>::IsAggregate>>::Output;
623 }
624
625 impl<$T1, $($T,)* Col> IsContainedInGroupBy<Col> for ($T1, $($T,)*)
626 where Col: QueryRelationField,
627 ($($T,)*): IsContainedInGroupBy<Col>,
628 $T1: IsContainedInGroupBy<Col>,
629 $T1::Output: is_contained_in_group_by::IsAny<<($($T,)*) as IsContainedInGroupBy<Col>>::Output>
630 {
631 type Output = <$T1::Output as is_contained_in_group_by::IsAny<<($($T,)*) as IsContainedInGroupBy<Col>>::Output>>::Output;
632 }
633 };
634 ($T1: ident,) => {
635 impl<$T1, Col> IsContainedInGroupBy<Col> for ($T1,)
636 where Col: QueryRelationField,
637 $T1: IsContainedInGroupBy<Col>
638 {
639 type Output = <$T1 as IsContainedInGroupBy<Col>>::Output;
640 }
641
642 #[cfg_attr(diesel_docsrs, doc(fake_variadic))]
643 impl<$T1, __GroupByClause> ValidGrouping<__GroupByClause> for ($T1,)
644 where $T1: ValidGrouping<__GroupByClause>
645 {
646 type IsAggregate = $T1::IsAggregate;
647 }
648 };
649}
650
651macro_rules! impl_sql_type {
652 (
653 @build
654 start_ts = [$($ST: ident,)*],
655 ts = [$T1: ident,],
656 bounds = [$($bounds: tt)*],
657 is_null = [$($is_null: tt)*],
658 )=> {
659 #[cfg_attr(diesel_docsrs, doc(hidden))]
660 impl<$($ST,)*> SqlType for ($($ST,)*)
661 where
662 $($ST: SqlType,)*
663 $($bounds)*
664 $T1::IsNull: OneIsNullable<$($is_null)*>,
665 {
666 type IsNull = <$T1::IsNull as OneIsNullable<$($is_null)*>>::Out;
667 }
668
669 };
670 (
671 @build
672 start_ts = [$($ST: ident,)*],
673 ts = [$T1: ident, $($T: ident,)+],
674 bounds = [$($bounds: tt)*],
675 is_null = [$($is_null: tt)*],
676 )=> {
677 impl_sql_type!{
678 @build
679 start_ts = [$($ST,)*],
680 ts = [$($T,)*],
681 bounds = [$($bounds)* $T1::IsNull: OneIsNullable<$($is_null)*>,],
682 is_null = [<$T1::IsNull as OneIsNullable<$($is_null)*>>::Out],
683 }
684 };
685 ($T1: ident, $($T: ident,)+) => {
686 impl_sql_type!{
687 @build
688 start_ts = [$T1, $($T,)*],
689 ts = [$($T,)*],
690 bounds = [],
691 is_null = [$T1::IsNull],
692 }
693 };
694 ($T1: ident,) => {
695 #[cfg_attr(diesel_docsrs, doc(fake_variadic))]
696 impl<$T1> SqlType for ($T1,)
697 where $T1: SqlType,
698 {
699 type IsNull = $T1::IsNull;
700 }
701 }
702}
703
704#[doc(hidden)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31,
__DB>
HasSqlType<(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
T29, T30, T31)> for __DB where __DB: HasSqlType<T>, __DB: HasSqlType<T1>,
__DB: HasSqlType<T2>, __DB: HasSqlType<T3>, __DB: HasSqlType<T4>,
__DB: HasSqlType<T5>, __DB: HasSqlType<T6>, __DB: HasSqlType<T7>,
__DB: HasSqlType<T8>, __DB: HasSqlType<T9>, __DB: HasSqlType<T10>,
__DB: HasSqlType<T11>, __DB: HasSqlType<T12>, __DB: HasSqlType<T13>,
__DB: HasSqlType<T14>, __DB: HasSqlType<T15>, __DB: HasSqlType<T16>,
__DB: HasSqlType<T17>, __DB: HasSqlType<T18>, __DB: HasSqlType<T19>,
__DB: HasSqlType<T20>, __DB: HasSqlType<T21>, __DB: HasSqlType<T22>,
__DB: HasSqlType<T23>, __DB: HasSqlType<T24>, __DB: HasSqlType<T25>,
__DB: HasSqlType<T26>, __DB: HasSqlType<T27>, __DB: HasSqlType<T28>,
__DB: HasSqlType<T29>, __DB: HasSqlType<T30>, __DB: HasSqlType<T31>,
__DB: Backend {
fn metadata(_: &mut __DB::MetadataLookup) -> __DB::TypeMetadata {
{
::core::panicking::panic_fmt(format_args!("internal error: entered unreachable code: {0}",
format_args!("Tuples should never implement `ToSql` directly")));
};
}
}
#[doc(hidden)]
#[diagnostic::do_not_recommend]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31,
ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14,
ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24, ST25, ST26,
ST27, ST28, ST29, ST30, ST31, __DB>
FromSqlRow<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24,
ST25, ST26, ST27, ST28, ST29, ST30, ST31, crate::sql_types::Untyped),
__DB> for
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31,
T) where __DB: Backend, T: FromSqlRow<crate::sql_types::Untyped, __DB>,
T1: FromSqlRow<ST1, __DB> + StaticallySizedRow<ST1, __DB>,
T2: FromSqlRow<ST2, __DB> + StaticallySizedRow<ST2, __DB>,
T3: FromSqlRow<ST3, __DB> + StaticallySizedRow<ST3, __DB>,
T4: FromSqlRow<ST4, __DB> + StaticallySizedRow<ST4, __DB>,
T5: FromSqlRow<ST5, __DB> + StaticallySizedRow<ST5, __DB>,
T6: FromSqlRow<ST6, __DB> + StaticallySizedRow<ST6, __DB>,
T7: FromSqlRow<ST7, __DB> + StaticallySizedRow<ST7, __DB>,
T8: FromSqlRow<ST8, __DB> + StaticallySizedRow<ST8, __DB>,
T9: FromSqlRow<ST9, __DB> + StaticallySizedRow<ST9, __DB>,
T10: FromSqlRow<ST10, __DB> + StaticallySizedRow<ST10, __DB>,
T11: FromSqlRow<ST11, __DB> + StaticallySizedRow<ST11, __DB>,
T12: FromSqlRow<ST12, __DB> + StaticallySizedRow<ST12, __DB>,
T13: FromSqlRow<ST13, __DB> + StaticallySizedRow<ST13, __DB>,
T14: FromSqlRow<ST14, __DB> + StaticallySizedRow<ST14, __DB>,
T15: FromSqlRow<ST15, __DB> + StaticallySizedRow<ST15, __DB>,
T16: FromSqlRow<ST16, __DB> + StaticallySizedRow<ST16, __DB>,
T17: FromSqlRow<ST17, __DB> + StaticallySizedRow<ST17, __DB>,
T18: FromSqlRow<ST18, __DB> + StaticallySizedRow<ST18, __DB>,
T19: FromSqlRow<ST19, __DB> + StaticallySizedRow<ST19, __DB>,
T20: FromSqlRow<ST20, __DB> + StaticallySizedRow<ST20, __DB>,
T21: FromSqlRow<ST21, __DB> + StaticallySizedRow<ST21, __DB>,
T22: FromSqlRow<ST22, __DB> + StaticallySizedRow<ST22, __DB>,
T23: FromSqlRow<ST23, __DB> + StaticallySizedRow<ST23, __DB>,
T24: FromSqlRow<ST24, __DB> + StaticallySizedRow<ST24, __DB>,
T25: FromSqlRow<ST25, __DB> + StaticallySizedRow<ST25, __DB>,
T26: FromSqlRow<ST26, __DB> + StaticallySizedRow<ST26, __DB>,
T27: FromSqlRow<ST27, __DB> + StaticallySizedRow<ST27, __DB>,
T28: FromSqlRow<ST28, __DB> + StaticallySizedRow<ST28, __DB>,
T29: FromSqlRow<ST29, __DB> + StaticallySizedRow<ST29, __DB>,
T30: FromSqlRow<ST30, __DB> + StaticallySizedRow<ST30, __DB>,
T31: FromSqlRow<ST31, __DB> + StaticallySizedRow<ST31, __DB> {
#[allow(non_snake_case, unused_variables, unused_mut)]
fn build_from_row<'a>(full_row: &impl Row<'a, __DB>)
-> deserialize::Result<Self> {
let field_count = full_row.field_count();
let mut static_field_count = 0;
let row =
full_row.partial_row(static_field_count..static_field_count +
T1::FIELD_COUNT);
static_field_count += T1::FIELD_COUNT;
let T1 = T1::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T2::FIELD_COUNT);
static_field_count += T2::FIELD_COUNT;
let T2 = T2::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T3::FIELD_COUNT);
static_field_count += T3::FIELD_COUNT;
let T3 = T3::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T4::FIELD_COUNT);
static_field_count += T4::FIELD_COUNT;
let T4 = T4::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T5::FIELD_COUNT);
static_field_count += T5::FIELD_COUNT;
let T5 = T5::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T6::FIELD_COUNT);
static_field_count += T6::FIELD_COUNT;
let T6 = T6::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T7::FIELD_COUNT);
static_field_count += T7::FIELD_COUNT;
let T7 = T7::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T8::FIELD_COUNT);
static_field_count += T8::FIELD_COUNT;
let T8 = T8::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T9::FIELD_COUNT);
static_field_count += T9::FIELD_COUNT;
let T9 = T9::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T10::FIELD_COUNT);
static_field_count += T10::FIELD_COUNT;
let T10 = T10::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T11::FIELD_COUNT);
static_field_count += T11::FIELD_COUNT;
let T11 = T11::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T12::FIELD_COUNT);
static_field_count += T12::FIELD_COUNT;
let T12 = T12::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T13::FIELD_COUNT);
static_field_count += T13::FIELD_COUNT;
let T13 = T13::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T14::FIELD_COUNT);
static_field_count += T14::FIELD_COUNT;
let T14 = T14::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T15::FIELD_COUNT);
static_field_count += T15::FIELD_COUNT;
let T15 = T15::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T16::FIELD_COUNT);
static_field_count += T16::FIELD_COUNT;
let T16 = T16::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T17::FIELD_COUNT);
static_field_count += T17::FIELD_COUNT;
let T17 = T17::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T18::FIELD_COUNT);
static_field_count += T18::FIELD_COUNT;
let T18 = T18::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T19::FIELD_COUNT);
static_field_count += T19::FIELD_COUNT;
let T19 = T19::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T20::FIELD_COUNT);
static_field_count += T20::FIELD_COUNT;
let T20 = T20::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T21::FIELD_COUNT);
static_field_count += T21::FIELD_COUNT;
let T21 = T21::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T22::FIELD_COUNT);
static_field_count += T22::FIELD_COUNT;
let T22 = T22::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T23::FIELD_COUNT);
static_field_count += T23::FIELD_COUNT;
let T23 = T23::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T24::FIELD_COUNT);
static_field_count += T24::FIELD_COUNT;
let T24 = T24::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T25::FIELD_COUNT);
static_field_count += T25::FIELD_COUNT;
let T25 = T25::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T26::FIELD_COUNT);
static_field_count += T26::FIELD_COUNT;
let T26 = T26::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T27::FIELD_COUNT);
static_field_count += T27::FIELD_COUNT;
let T27 = T27::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T28::FIELD_COUNT);
static_field_count += T28::FIELD_COUNT;
let T28 = T28::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T29::FIELD_COUNT);
static_field_count += T29::FIELD_COUNT;
let T29 = T29::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T30::FIELD_COUNT);
static_field_count += T30::FIELD_COUNT;
let T30 = T30::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T31::FIELD_COUNT);
static_field_count += T31::FIELD_COUNT;
let T31 = T31::build_from_row(&row)?;
let row = full_row.partial_row(static_field_count..field_count);
Ok((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
T28, T29, T30, T31, T::build_from_row(&row)?))
}
}
#[doc(hidden)]
impl<T, ST, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
T31, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13,
ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24, ST25,
ST26, ST27, ST28, ST29, ST30, ST31, __DB>
FromStaticSqlRow<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23,
ST24, ST25, ST26, ST27, ST28, ST29, ST30, ST31, ST), __DB> for
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31,
T) where __DB: Backend, ST: CompatibleType<T, __DB>,
T: FromSqlRow<<ST as CompatibleType<T, __DB>>::SqlType, __DB>,
ST1: CompatibleType<T1, __DB>,
T1: FromSqlRow<<ST1 as CompatibleType<T1, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST1 as CompatibleType<T1, __DB>>::SqlType, __DB>,
ST2: CompatibleType<T2, __DB>,
T2: FromSqlRow<<ST2 as CompatibleType<T2, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST2 as CompatibleType<T2, __DB>>::SqlType, __DB>,
ST3: CompatibleType<T3, __DB>,
T3: FromSqlRow<<ST3 as CompatibleType<T3, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST3 as CompatibleType<T3, __DB>>::SqlType, __DB>,
ST4: CompatibleType<T4, __DB>,
T4: FromSqlRow<<ST4 as CompatibleType<T4, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST4 as CompatibleType<T4, __DB>>::SqlType, __DB>,
ST5: CompatibleType<T5, __DB>,
T5: FromSqlRow<<ST5 as CompatibleType<T5, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST5 as CompatibleType<T5, __DB>>::SqlType, __DB>,
ST6: CompatibleType<T6, __DB>,
T6: FromSqlRow<<ST6 as CompatibleType<T6, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST6 as CompatibleType<T6, __DB>>::SqlType, __DB>,
ST7: CompatibleType<T7, __DB>,
T7: FromSqlRow<<ST7 as CompatibleType<T7, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST7 as CompatibleType<T7, __DB>>::SqlType, __DB>,
ST8: CompatibleType<T8, __DB>,
T8: FromSqlRow<<ST8 as CompatibleType<T8, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST8 as CompatibleType<T8, __DB>>::SqlType, __DB>,
ST9: CompatibleType<T9, __DB>,
T9: FromSqlRow<<ST9 as CompatibleType<T9, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST9 as CompatibleType<T9, __DB>>::SqlType, __DB>,
ST10: CompatibleType<T10, __DB>,
T10: FromSqlRow<<ST10 as CompatibleType<T10, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST10 as CompatibleType<T10, __DB>>::SqlType, __DB>,
ST11: CompatibleType<T11, __DB>,
T11: FromSqlRow<<ST11 as CompatibleType<T11, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST11 as CompatibleType<T11, __DB>>::SqlType, __DB>,
ST12: CompatibleType<T12, __DB>,
T12: FromSqlRow<<ST12 as CompatibleType<T12, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST12 as CompatibleType<T12, __DB>>::SqlType, __DB>,
ST13: CompatibleType<T13, __DB>,
T13: FromSqlRow<<ST13 as CompatibleType<T13, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST13 as CompatibleType<T13, __DB>>::SqlType, __DB>,
ST14: CompatibleType<T14, __DB>,
T14: FromSqlRow<<ST14 as CompatibleType<T14, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST14 as CompatibleType<T14, __DB>>::SqlType, __DB>,
ST15: CompatibleType<T15, __DB>,
T15: FromSqlRow<<ST15 as CompatibleType<T15, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST15 as CompatibleType<T15, __DB>>::SqlType, __DB>,
ST16: CompatibleType<T16, __DB>,
T16: FromSqlRow<<ST16 as CompatibleType<T16, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST16 as CompatibleType<T16, __DB>>::SqlType, __DB>,
ST17: CompatibleType<T17, __DB>,
T17: FromSqlRow<<ST17 as CompatibleType<T17, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST17 as CompatibleType<T17, __DB>>::SqlType, __DB>,
ST18: CompatibleType<T18, __DB>,
T18: FromSqlRow<<ST18 as CompatibleType<T18, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST18 as CompatibleType<T18, __DB>>::SqlType, __DB>,
ST19: CompatibleType<T19, __DB>,
T19: FromSqlRow<<ST19 as CompatibleType<T19, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST19 as CompatibleType<T19, __DB>>::SqlType, __DB>,
ST20: CompatibleType<T20, __DB>,
T20: FromSqlRow<<ST20 as CompatibleType<T20, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST20 as CompatibleType<T20, __DB>>::SqlType, __DB>,
ST21: CompatibleType<T21, __DB>,
T21: FromSqlRow<<ST21 as CompatibleType<T21, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST21 as CompatibleType<T21, __DB>>::SqlType, __DB>,
ST22: CompatibleType<T22, __DB>,
T22: FromSqlRow<<ST22 as CompatibleType<T22, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST22 as CompatibleType<T22, __DB>>::SqlType, __DB>,
ST23: CompatibleType<T23, __DB>,
T23: FromSqlRow<<ST23 as CompatibleType<T23, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST23 as CompatibleType<T23, __DB>>::SqlType, __DB>,
ST24: CompatibleType<T24, __DB>,
T24: FromSqlRow<<ST24 as CompatibleType<T24, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST24 as CompatibleType<T24, __DB>>::SqlType, __DB>,
ST25: CompatibleType<T25, __DB>,
T25: FromSqlRow<<ST25 as CompatibleType<T25, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST25 as CompatibleType<T25, __DB>>::SqlType, __DB>,
ST26: CompatibleType<T26, __DB>,
T26: FromSqlRow<<ST26 as CompatibleType<T26, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST26 as CompatibleType<T26, __DB>>::SqlType, __DB>,
ST27: CompatibleType<T27, __DB>,
T27: FromSqlRow<<ST27 as CompatibleType<T27, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST27 as CompatibleType<T27, __DB>>::SqlType, __DB>,
ST28: CompatibleType<T28, __DB>,
T28: FromSqlRow<<ST28 as CompatibleType<T28, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST28 as CompatibleType<T28, __DB>>::SqlType, __DB>,
ST29: CompatibleType<T29, __DB>,
T29: FromSqlRow<<ST29 as CompatibleType<T29, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST29 as CompatibleType<T29, __DB>>::SqlType, __DB>,
ST30: CompatibleType<T30, __DB>,
T30: FromSqlRow<<ST30 as CompatibleType<T30, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST30 as CompatibleType<T30, __DB>>::SqlType, __DB>,
ST31: CompatibleType<T31, __DB>,
T31: FromSqlRow<<ST31 as CompatibleType<T31, __DB>>::SqlType, __DB> +
StaticallySizedRow<<ST31 as CompatibleType<T31, __DB>>::SqlType, __DB> {
#[allow(non_snake_case, unused_variables, unused_mut)]
fn build_from_row<'a>(full_row: &impl Row<'a, __DB>)
-> deserialize::Result<Self> {
let field_count = full_row.field_count();
let mut static_field_count = 0;
let row =
full_row.partial_row(static_field_count..static_field_count +
T1::FIELD_COUNT);
static_field_count += T1::FIELD_COUNT;
let T1 =
<T1 as
FromSqlRow<<ST1 as CompatibleType<T1, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T2::FIELD_COUNT);
static_field_count += T2::FIELD_COUNT;
let T2 =
<T2 as
FromSqlRow<<ST2 as CompatibleType<T2, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T3::FIELD_COUNT);
static_field_count += T3::FIELD_COUNT;
let T3 =
<T3 as
FromSqlRow<<ST3 as CompatibleType<T3, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T4::FIELD_COUNT);
static_field_count += T4::FIELD_COUNT;
let T4 =
<T4 as
FromSqlRow<<ST4 as CompatibleType<T4, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T5::FIELD_COUNT);
static_field_count += T5::FIELD_COUNT;
let T5 =
<T5 as
FromSqlRow<<ST5 as CompatibleType<T5, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T6::FIELD_COUNT);
static_field_count += T6::FIELD_COUNT;
let T6 =
<T6 as
FromSqlRow<<ST6 as CompatibleType<T6, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T7::FIELD_COUNT);
static_field_count += T7::FIELD_COUNT;
let T7 =
<T7 as
FromSqlRow<<ST7 as CompatibleType<T7, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T8::FIELD_COUNT);
static_field_count += T8::FIELD_COUNT;
let T8 =
<T8 as
FromSqlRow<<ST8 as CompatibleType<T8, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T9::FIELD_COUNT);
static_field_count += T9::FIELD_COUNT;
let T9 =
<T9 as
FromSqlRow<<ST9 as CompatibleType<T9, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T10::FIELD_COUNT);
static_field_count += T10::FIELD_COUNT;
let T10 =
<T10 as
FromSqlRow<<ST10 as CompatibleType<T10, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T11::FIELD_COUNT);
static_field_count += T11::FIELD_COUNT;
let T11 =
<T11 as
FromSqlRow<<ST11 as CompatibleType<T11, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T12::FIELD_COUNT);
static_field_count += T12::FIELD_COUNT;
let T12 =
<T12 as
FromSqlRow<<ST12 as CompatibleType<T12, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T13::FIELD_COUNT);
static_field_count += T13::FIELD_COUNT;
let T13 =
<T13 as
FromSqlRow<<ST13 as CompatibleType<T13, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T14::FIELD_COUNT);
static_field_count += T14::FIELD_COUNT;
let T14 =
<T14 as
FromSqlRow<<ST14 as CompatibleType<T14, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T15::FIELD_COUNT);
static_field_count += T15::FIELD_COUNT;
let T15 =
<T15 as
FromSqlRow<<ST15 as CompatibleType<T15, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T16::FIELD_COUNT);
static_field_count += T16::FIELD_COUNT;
let T16 =
<T16 as
FromSqlRow<<ST16 as CompatibleType<T16, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T17::FIELD_COUNT);
static_field_count += T17::FIELD_COUNT;
let T17 =
<T17 as
FromSqlRow<<ST17 as CompatibleType<T17, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T18::FIELD_COUNT);
static_field_count += T18::FIELD_COUNT;
let T18 =
<T18 as
FromSqlRow<<ST18 as CompatibleType<T18, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T19::FIELD_COUNT);
static_field_count += T19::FIELD_COUNT;
let T19 =
<T19 as
FromSqlRow<<ST19 as CompatibleType<T19, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T20::FIELD_COUNT);
static_field_count += T20::FIELD_COUNT;
let T20 =
<T20 as
FromSqlRow<<ST20 as CompatibleType<T20, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T21::FIELD_COUNT);
static_field_count += T21::FIELD_COUNT;
let T21 =
<T21 as
FromSqlRow<<ST21 as CompatibleType<T21, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T22::FIELD_COUNT);
static_field_count += T22::FIELD_COUNT;
let T22 =
<T22 as
FromSqlRow<<ST22 as CompatibleType<T22, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T23::FIELD_COUNT);
static_field_count += T23::FIELD_COUNT;
let T23 =
<T23 as
FromSqlRow<<ST23 as CompatibleType<T23, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T24::FIELD_COUNT);
static_field_count += T24::FIELD_COUNT;
let T24 =
<T24 as
FromSqlRow<<ST24 as CompatibleType<T24, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T25::FIELD_COUNT);
static_field_count += T25::FIELD_COUNT;
let T25 =
<T25 as
FromSqlRow<<ST25 as CompatibleType<T25, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T26::FIELD_COUNT);
static_field_count += T26::FIELD_COUNT;
let T26 =
<T26 as
FromSqlRow<<ST26 as CompatibleType<T26, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T27::FIELD_COUNT);
static_field_count += T27::FIELD_COUNT;
let T27 =
<T27 as
FromSqlRow<<ST27 as CompatibleType<T27, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T28::FIELD_COUNT);
static_field_count += T28::FIELD_COUNT;
let T28 =
<T28 as
FromSqlRow<<ST28 as CompatibleType<T28, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T29::FIELD_COUNT);
static_field_count += T29::FIELD_COUNT;
let T29 =
<T29 as
FromSqlRow<<ST29 as CompatibleType<T29, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T30::FIELD_COUNT);
static_field_count += T30::FIELD_COUNT;
let T30 =
<T30 as
FromSqlRow<<ST30 as CompatibleType<T30, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row =
full_row.partial_row(static_field_count..static_field_count +
T31::FIELD_COUNT);
static_field_count += T31::FIELD_COUNT;
let T31 =
<T31 as
FromSqlRow<<ST31 as CompatibleType<T31, __DB>>::SqlType,
__DB>>::build_from_row(&row)?;
let row = full_row.partial_row(static_field_count..field_count);
Ok((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
T28, T29, T30, T31, T::build_from_row(&row)?))
}
}
#[doc(hidden)]
#[diagnostic::do_not_recommend]
impl<T: Expression, T1: Expression, T2: Expression, T3: Expression,
T4: Expression, T5: Expression, T6: Expression, T7: Expression,
T8: Expression, T9: Expression, T10: Expression, T11: Expression,
T12: Expression, T13: Expression, T14: Expression, T15: Expression,
T16: Expression, T17: Expression, T18: Expression, T19: Expression,
T20: Expression, T21: Expression, T22: Expression, T23: Expression,
T24: Expression, T25: Expression, T26: Expression, T27: Expression,
T28: Expression, T29: Expression, T30: Expression, T31: Expression>
Expression for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)
where
(T::SqlType, T1::SqlType, T2::SqlType, T3::SqlType, T4::SqlType,
T5::SqlType, T6::SqlType, T7::SqlType, T8::SqlType, T9::SqlType,
T10::SqlType, T11::SqlType, T12::SqlType, T13::SqlType, T14::SqlType,
T15::SqlType, T16::SqlType, T17::SqlType, T18::SqlType, T19::SqlType,
T20::SqlType, T21::SqlType, T22::SqlType, T23::SqlType, T24::SqlType,
T25::SqlType, T26::SqlType, T27::SqlType, T28::SqlType, T29::SqlType,
T30::SqlType, T31::SqlType): TypedExpressionType {
type SqlType =
(<T as Expression>::SqlType, <T1 as Expression>::SqlType,
<T2 as Expression>::SqlType, <T3 as Expression>::SqlType,
<T4 as Expression>::SqlType, <T5 as Expression>::SqlType,
<T6 as Expression>::SqlType, <T7 as Expression>::SqlType,
<T8 as Expression>::SqlType, <T9 as Expression>::SqlType,
<T10 as Expression>::SqlType, <T11 as Expression>::SqlType,
<T12 as Expression>::SqlType, <T13 as Expression>::SqlType,
<T14 as Expression>::SqlType, <T15 as Expression>::SqlType,
<T16 as Expression>::SqlType, <T17 as Expression>::SqlType,
<T18 as Expression>::SqlType, <T19 as Expression>::SqlType,
<T20 as Expression>::SqlType, <T21 as Expression>::SqlType,
<T22 as Expression>::SqlType, <T23 as Expression>::SqlType,
<T24 as Expression>::SqlType, <T25 as Expression>::SqlType,
<T26 as Expression>::SqlType, <T27 as Expression>::SqlType,
<T28 as Expression>::SqlType, <T29 as Expression>::SqlType,
<T30 as Expression>::SqlType, <T31 as Expression>::SqlType);
}
#[doc(hidden)]
impl<T: TypedExpressionType, T1: TypedExpressionType, T2: TypedExpressionType,
T3: TypedExpressionType, T4: TypedExpressionType, T5: TypedExpressionType,
T6: TypedExpressionType, T7: TypedExpressionType, T8: TypedExpressionType,
T9: TypedExpressionType, T10: TypedExpressionType,
T11: TypedExpressionType, T12: TypedExpressionType,
T13: TypedExpressionType, T14: TypedExpressionType,
T15: TypedExpressionType, T16: TypedExpressionType,
T17: TypedExpressionType, T18: TypedExpressionType,
T19: TypedExpressionType, T20: TypedExpressionType,
T21: TypedExpressionType, T22: TypedExpressionType,
T23: TypedExpressionType, T24: TypedExpressionType,
T25: TypedExpressionType, T26: TypedExpressionType,
T27: TypedExpressionType, T28: TypedExpressionType,
T29: TypedExpressionType, T30: TypedExpressionType,
T31: TypedExpressionType> TypedExpressionType for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)
{
}
#[doc(hidden)]
impl<T: SqlType + TypedExpressionType, T1: SqlType + TypedExpressionType,
T2: SqlType + TypedExpressionType, T3: SqlType + TypedExpressionType,
T4: SqlType + TypedExpressionType, T5: SqlType + TypedExpressionType,
T6: SqlType + TypedExpressionType, T7: SqlType + TypedExpressionType,
T8: SqlType + TypedExpressionType, T9: SqlType + TypedExpressionType,
T10: SqlType + TypedExpressionType, T11: SqlType + TypedExpressionType,
T12: SqlType + TypedExpressionType, T13: SqlType + TypedExpressionType,
T14: SqlType + TypedExpressionType, T15: SqlType + TypedExpressionType,
T16: SqlType + TypedExpressionType, T17: SqlType + TypedExpressionType,
T18: SqlType + TypedExpressionType, T19: SqlType + TypedExpressionType,
T20: SqlType + TypedExpressionType, T21: SqlType + TypedExpressionType,
T22: SqlType + TypedExpressionType, T23: SqlType + TypedExpressionType,
T24: SqlType + TypedExpressionType, T25: SqlType + TypedExpressionType,
T26: SqlType + TypedExpressionType, T27: SqlType + TypedExpressionType,
T28: SqlType + TypedExpressionType, T29: SqlType + TypedExpressionType,
T30: SqlType + TypedExpressionType, T31: SqlType + TypedExpressionType>
TypedExpressionType for
Nullable<(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
T30, T31)> where
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
T31): SqlType {
}
#[doc(hidden)]
impl<T: SqlType, T1: SqlType, T2: SqlType, T3: SqlType, T4: SqlType,
T5: SqlType, T6: SqlType, T7: SqlType, T8: SqlType, T9: SqlType,
T10: SqlType, T11: SqlType, T12: SqlType, T13: SqlType, T14: SqlType,
T15: SqlType, T16: SqlType, T17: SqlType, T18: SqlType, T19: SqlType,
T20: SqlType, T21: SqlType, T22: SqlType, T23: SqlType, T24: SqlType,
T25: SqlType, T26: SqlType, T27: SqlType, T28: SqlType, T29: SqlType,
T30: SqlType, T31: SqlType> IntoNullable for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)
where Self: SqlType {
type Nullable =
Nullable<(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
T28, T29, T30, T31)>;
}
#[doc(hidden)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31,
__DB> Selectable<__DB> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)
where __DB: Backend, T: Selectable<__DB>, T1: Selectable<__DB>,
T2: Selectable<__DB>, T3: Selectable<__DB>, T4: Selectable<__DB>,
T5: Selectable<__DB>, T6: Selectable<__DB>, T7: Selectable<__DB>,
T8: Selectable<__DB>, T9: Selectable<__DB>, T10: Selectable<__DB>,
T11: Selectable<__DB>, T12: Selectable<__DB>, T13: Selectable<__DB>,
T14: Selectable<__DB>, T15: Selectable<__DB>, T16: Selectable<__DB>,
T17: Selectable<__DB>, T18: Selectable<__DB>, T19: Selectable<__DB>,
T20: Selectable<__DB>, T21: Selectable<__DB>, T22: Selectable<__DB>,
T23: Selectable<__DB>, T24: Selectable<__DB>, T25: Selectable<__DB>,
T26: Selectable<__DB>, T27: Selectable<__DB>, T28: Selectable<__DB>,
T29: Selectable<__DB>, T30: Selectable<__DB>, T31: Selectable<__DB> {
type SelectExpression =
(T::SelectExpression, T1::SelectExpression, T2::SelectExpression,
T3::SelectExpression, T4::SelectExpression, T5::SelectExpression,
T6::SelectExpression, T7::SelectExpression, T8::SelectExpression,
T9::SelectExpression, T10::SelectExpression, T11::SelectExpression,
T12::SelectExpression, T13::SelectExpression, T14::SelectExpression,
T15::SelectExpression, T16::SelectExpression, T17::SelectExpression,
T18::SelectExpression, T19::SelectExpression, T20::SelectExpression,
T21::SelectExpression, T22::SelectExpression, T23::SelectExpression,
T24::SelectExpression, T25::SelectExpression, T26::SelectExpression,
T27::SelectExpression, T28::SelectExpression, T29::SelectExpression,
T30::SelectExpression, T31::SelectExpression);
fn construct_selection() -> Self::SelectExpression {
(T::construct_selection(), T1::construct_selection(),
T2::construct_selection(), T3::construct_selection(),
T4::construct_selection(), T5::construct_selection(),
T6::construct_selection(), T7::construct_selection(),
T8::construct_selection(), T9::construct_selection(),
T10::construct_selection(), T11::construct_selection(),
T12::construct_selection(), T13::construct_selection(),
T14::construct_selection(), T15::construct_selection(),
T16::construct_selection(), T17::construct_selection(),
T18::construct_selection(), T19::construct_selection(),
T20::construct_selection(), T21::construct_selection(),
T22::construct_selection(), T23::construct_selection(),
T24::construct_selection(), T25::construct_selection(),
T26::construct_selection(), T27::construct_selection(),
T28::construct_selection(), T29::construct_selection(),
T30::construct_selection(), T31::construct_selection())
}
}
#[doc(hidden)]
impl<T: QueryFragment<__DB>, T1: QueryFragment<__DB>, T2: QueryFragment<__DB>,
T3: QueryFragment<__DB>, T4: QueryFragment<__DB>, T5: QueryFragment<__DB>,
T6: QueryFragment<__DB>, T7: QueryFragment<__DB>, T8: QueryFragment<__DB>,
T9: QueryFragment<__DB>, T10: QueryFragment<__DB>,
T11: QueryFragment<__DB>, T12: QueryFragment<__DB>,
T13: QueryFragment<__DB>, T14: QueryFragment<__DB>,
T15: QueryFragment<__DB>, T16: QueryFragment<__DB>,
T17: QueryFragment<__DB>, T18: QueryFragment<__DB>,
T19: QueryFragment<__DB>, T20: QueryFragment<__DB>,
T21: QueryFragment<__DB>, T22: QueryFragment<__DB>,
T23: QueryFragment<__DB>, T24: QueryFragment<__DB>,
T25: QueryFragment<__DB>, T26: QueryFragment<__DB>,
T27: QueryFragment<__DB>, T28: QueryFragment<__DB>,
T29: QueryFragment<__DB>, T30: QueryFragment<__DB>,
T31: QueryFragment<__DB>, __DB: Backend> QueryFragment<__DB> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)
{
#[allow(unused_assignments)]
fn walk_ast<'b>(&'b self, mut out: AstPass<'_, 'b, __DB>)
-> QueryResult<()> {
let mut needs_comma = false;
if !self.0.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.0.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.1.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.1.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.2.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.2.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.3.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.3.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.4.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.4.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.5.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.5.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.6.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.6.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.7.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.7.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.8.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.8.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.9.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.9.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.10.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.10.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.11.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.11.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.12.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.12.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.13.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.13.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.14.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.14.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.15.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.15.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.16.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.16.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.17.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.17.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.18.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.18.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.19.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.19.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.20.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.20.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.21.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.21.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.22.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.22.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.23.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.23.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.24.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.24.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.25.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.25.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.26.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.26.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.27.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.27.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.28.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.28.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.29.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.29.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.30.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.30.walk_ast(out.reborrow())?;
needs_comma = true;
}
if !self.31.is_noop(out.backend())? {
if needs_comma { out.push_sql(", "); }
self.31.walk_ast(out.reborrow())?;
needs_comma = true;
}
Ok(())
}
}
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31,
Tab> ColumnList for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)
where T: ColumnList<Table = Tab>, T1: ColumnList<Table = Tab>,
T2: ColumnList<Table = Tab>, T3: ColumnList<Table = Tab>,
T4: ColumnList<Table = Tab>, T5: ColumnList<Table = Tab>,
T6: ColumnList<Table = Tab>, T7: ColumnList<Table = Tab>,
T8: ColumnList<Table = Tab>, T9: ColumnList<Table = Tab>,
T10: ColumnList<Table = Tab>, T11: ColumnList<Table = Tab>,
T12: ColumnList<Table = Tab>, T13: ColumnList<Table = Tab>,
T14: ColumnList<Table = Tab>, T15: ColumnList<Table = Tab>,
T16: ColumnList<Table = Tab>, T17: ColumnList<Table = Tab>,
T18: ColumnList<Table = Tab>, T19: ColumnList<Table = Tab>,
T20: ColumnList<Table = Tab>, T21: ColumnList<Table = Tab>,
T22: ColumnList<Table = Tab>, T23: ColumnList<Table = Tab>,
T24: ColumnList<Table = Tab>, T25: ColumnList<Table = Tab>,
T26: ColumnList<Table = Tab>, T27: ColumnList<Table = Tab>,
T28: ColumnList<Table = Tab>, T29: ColumnList<Table = Tab>,
T30: ColumnList<Table = Tab>, T31: ColumnList<Table = Tab> {
type Table = Tab;
fn walk_ast<__DB: Backend>(&self, mut out: AstPass<'_, '_, __DB>)
-> QueryResult<()> {
if 0 != 0 { out.push_sql(", "); }
self.0.walk_ast(out.reborrow())?;
if 1 != 0 { out.push_sql(", "); }
self.1.walk_ast(out.reborrow())?;
if 2 != 0 { out.push_sql(", "); }
self.2.walk_ast(out.reborrow())?;
if 3 != 0 { out.push_sql(", "); }
self.3.walk_ast(out.reborrow())?;
if 4 != 0 { out.push_sql(", "); }
self.4.walk_ast(out.reborrow())?;
if 5 != 0 { out.push_sql(", "); }
self.5.walk_ast(out.reborrow())?;
if 6 != 0 { out.push_sql(", "); }
self.6.walk_ast(out.reborrow())?;
if 7 != 0 { out.push_sql(", "); }
self.7.walk_ast(out.reborrow())?;
if 8 != 0 { out.push_sql(", "); }
self.8.walk_ast(out.reborrow())?;
if 9 != 0 { out.push_sql(", "); }
self.9.walk_ast(out.reborrow())?;
if 10 != 0 { out.push_sql(", "); }
self.10.walk_ast(out.reborrow())?;
if 11 != 0 { out.push_sql(", "); }
self.11.walk_ast(out.reborrow())?;
if 12 != 0 { out.push_sql(", "); }
self.12.walk_ast(out.reborrow())?;
if 13 != 0 { out.push_sql(", "); }
self.13.walk_ast(out.reborrow())?;
if 14 != 0 { out.push_sql(", "); }
self.14.walk_ast(out.reborrow())?;
if 15 != 0 { out.push_sql(", "); }
self.15.walk_ast(out.reborrow())?;
if 16 != 0 { out.push_sql(", "); }
self.16.walk_ast(out.reborrow())?;
if 17 != 0 { out.push_sql(", "); }
self.17.walk_ast(out.reborrow())?;
if 18 != 0 { out.push_sql(", "); }
self.18.walk_ast(out.reborrow())?;
if 19 != 0 { out.push_sql(", "); }
self.19.walk_ast(out.reborrow())?;
if 20 != 0 { out.push_sql(", "); }
self.20.walk_ast(out.reborrow())?;
if 21 != 0 { out.push_sql(", "); }
self.21.walk_ast(out.reborrow())?;
if 22 != 0 { out.push_sql(", "); }
self.22.walk_ast(out.reborrow())?;
if 23 != 0 { out.push_sql(", "); }
self.23.walk_ast(out.reborrow())?;
if 24 != 0 { out.push_sql(", "); }
self.24.walk_ast(out.reborrow())?;
if 25 != 0 { out.push_sql(", "); }
self.25.walk_ast(out.reborrow())?;
if 26 != 0 { out.push_sql(", "); }
self.26.walk_ast(out.reborrow())?;
if 27 != 0 { out.push_sql(", "); }
self.27.walk_ast(out.reborrow())?;
if 28 != 0 { out.push_sql(", "); }
self.28.walk_ast(out.reborrow())?;
if 29 != 0 { out.push_sql(", "); }
self.29.walk_ast(out.reborrow())?;
if 30 != 0 { out.push_sql(", "); }
self.30.walk_ast(out.reborrow())?;
if 31 != 0 { out.push_sql(", "); }
self.31.walk_ast(out.reborrow())?;
Ok(())
}
}
#[doc(hidden)]
impl<T: QueryId, T1: QueryId, T2: QueryId, T3: QueryId, T4: QueryId,
T5: QueryId, T6: QueryId, T7: QueryId, T8: QueryId, T9: QueryId,
T10: QueryId, T11: QueryId, T12: QueryId, T13: QueryId, T14: QueryId,
T15: QueryId, T16: QueryId, T17: QueryId, T18: QueryId, T19: QueryId,
T20: QueryId, T21: QueryId, T22: QueryId, T23: QueryId, T24: QueryId,
T25: QueryId, T26: QueryId, T27: QueryId, T28: QueryId, T29: QueryId,
T30: QueryId, T31: QueryId> QueryId for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)
{
type QueryId =
(T::QueryId, T1::QueryId, T2::QueryId, T3::QueryId, T4::QueryId,
T5::QueryId, T6::QueryId, T7::QueryId, T8::QueryId, T9::QueryId,
T10::QueryId, T11::QueryId, T12::QueryId, T13::QueryId, T14::QueryId,
T15::QueryId, T16::QueryId, T17::QueryId, T18::QueryId, T19::QueryId,
T20::QueryId, T21::QueryId, T22::QueryId, T23::QueryId, T24::QueryId,
T25::QueryId, T26::QueryId, T27::QueryId, T28::QueryId, T29::QueryId,
T30::QueryId, T31::QueryId);
const HAS_STATIC_QUERY_ID: bool =
T::HAS_STATIC_QUERY_ID && T1::HAS_STATIC_QUERY_ID &&
T2::HAS_STATIC_QUERY_ID && T3::HAS_STATIC_QUERY_ID &&
T4::HAS_STATIC_QUERY_ID && T5::HAS_STATIC_QUERY_ID &&
T6::HAS_STATIC_QUERY_ID && T7::HAS_STATIC_QUERY_ID &&
T8::HAS_STATIC_QUERY_ID && T9::HAS_STATIC_QUERY_ID &&
T10::HAS_STATIC_QUERY_ID && T11::HAS_STATIC_QUERY_ID &&
T12::HAS_STATIC_QUERY_ID && T13::HAS_STATIC_QUERY_ID &&
T14::HAS_STATIC_QUERY_ID && T15::HAS_STATIC_QUERY_ID &&
T16::HAS_STATIC_QUERY_ID && T17::HAS_STATIC_QUERY_ID &&
T18::HAS_STATIC_QUERY_ID && T19::HAS_STATIC_QUERY_ID &&
T20::HAS_STATIC_QUERY_ID && T21::HAS_STATIC_QUERY_ID &&
T22::HAS_STATIC_QUERY_ID && T23::HAS_STATIC_QUERY_ID &&
T24::HAS_STATIC_QUERY_ID && T25::HAS_STATIC_QUERY_ID &&
T26::HAS_STATIC_QUERY_ID && T27::HAS_STATIC_QUERY_ID &&
T28::HAS_STATIC_QUERY_ID && T29::HAS_STATIC_QUERY_ID &&
T30::HAS_STATIC_QUERY_ID && T31::HAS_STATIC_QUERY_ID &&
true;
}
#[doc(hidden)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31,
__GroupByClause> ValidGrouping<__GroupByClause> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)
where T: ValidGrouping<__GroupByClause>,
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
T31): ValidGrouping<__GroupByClause>,
T::IsAggregate: MixedAggregates<<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10,
T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
T26, T27, T28, T29, T30, T31) as
ValidGrouping<__GroupByClause>>::IsAggregate> {
type IsAggregate =
<T::IsAggregate as
MixedAggregates<<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
T27, T28, T29, T30, T31) as
ValidGrouping<__GroupByClause>>::IsAggregate>>::Output;
}
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31,
Col> IsContainedInGroupBy<Col> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)
where Col: QueryRelationField,
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
T31): IsContainedInGroupBy<Col>, T: IsContainedInGroupBy<Col>,
T::Output: is_contained_in_group_by::IsAny<<(T1, T2, T3, T4, T5, T6, T7,
T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22,
T23, T24, T25, T26, T27, T28, T29, T30, T31) as
IsContainedInGroupBy<Col>>::Output> {
type Output =
<T::Output as
is_contained_in_group_by::IsAny<<(T1, T2, T3, T4, T5, T6, T7, T8, T9,
T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23,
T24, T25, T26, T27, T28, T29, T30, T31) as
IsContainedInGroupBy<Col>>::Output>>::Output;
}
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31,
Tab> UndecoratedInsertRecord<Tab> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)
where T: UndecoratedInsertRecord<Tab>, T1: UndecoratedInsertRecord<Tab>,
T2: UndecoratedInsertRecord<Tab>, T3: UndecoratedInsertRecord<Tab>,
T4: UndecoratedInsertRecord<Tab>, T5: UndecoratedInsertRecord<Tab>,
T6: UndecoratedInsertRecord<Tab>, T7: UndecoratedInsertRecord<Tab>,
T8: UndecoratedInsertRecord<Tab>, T9: UndecoratedInsertRecord<Tab>,
T10: UndecoratedInsertRecord<Tab>, T11: UndecoratedInsertRecord<Tab>,
T12: UndecoratedInsertRecord<Tab>, T13: UndecoratedInsertRecord<Tab>,
T14: UndecoratedInsertRecord<Tab>, T15: UndecoratedInsertRecord<Tab>,
T16: UndecoratedInsertRecord<Tab>, T17: UndecoratedInsertRecord<Tab>,
T18: UndecoratedInsertRecord<Tab>, T19: UndecoratedInsertRecord<Tab>,
T20: UndecoratedInsertRecord<Tab>, T21: UndecoratedInsertRecord<Tab>,
T22: UndecoratedInsertRecord<Tab>, T23: UndecoratedInsertRecord<Tab>,
T24: UndecoratedInsertRecord<Tab>, T25: UndecoratedInsertRecord<Tab>,
T26: UndecoratedInsertRecord<Tab>, T27: UndecoratedInsertRecord<Tab>,
T28: UndecoratedInsertRecord<Tab>, T29: UndecoratedInsertRecord<Tab>,
T30: UndecoratedInsertRecord<Tab>, T31: UndecoratedInsertRecord<Tab> {}
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31,
__DB> CanInsertInSingleQuery<__DB> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)
where __DB: Backend, T: CanInsertInSingleQuery<__DB>,
T1: CanInsertInSingleQuery<__DB>, T2: CanInsertInSingleQuery<__DB>,
T3: CanInsertInSingleQuery<__DB>, T4: CanInsertInSingleQuery<__DB>,
T5: CanInsertInSingleQuery<__DB>, T6: CanInsertInSingleQuery<__DB>,
T7: CanInsertInSingleQuery<__DB>, T8: CanInsertInSingleQuery<__DB>,
T9: CanInsertInSingleQuery<__DB>, T10: CanInsertInSingleQuery<__DB>,
T11: CanInsertInSingleQuery<__DB>, T12: CanInsertInSingleQuery<__DB>,
T13: CanInsertInSingleQuery<__DB>, T14: CanInsertInSingleQuery<__DB>,
T15: CanInsertInSingleQuery<__DB>, T16: CanInsertInSingleQuery<__DB>,
T17: CanInsertInSingleQuery<__DB>, T18: CanInsertInSingleQuery<__DB>,
T19: CanInsertInSingleQuery<__DB>, T20: CanInsertInSingleQuery<__DB>,
T21: CanInsertInSingleQuery<__DB>, T22: CanInsertInSingleQuery<__DB>,
T23: CanInsertInSingleQuery<__DB>, T24: CanInsertInSingleQuery<__DB>,
T25: CanInsertInSingleQuery<__DB>, T26: CanInsertInSingleQuery<__DB>,
T27: CanInsertInSingleQuery<__DB>, T28: CanInsertInSingleQuery<__DB>,
T29: CanInsertInSingleQuery<__DB>, T30: CanInsertInSingleQuery<__DB>,
T31: CanInsertInSingleQuery<__DB> {
fn rows_to_insert(&self) -> Option<usize> {
if true {
{
match (&self.0.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.1.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.2.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.3.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.4.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.5.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.6.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.7.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.8.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.9.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.10.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.11.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.12.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.13.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.14.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.15.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.16.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.17.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.18.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.19.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.20.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.21.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.22.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.23.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.24.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.25.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.26.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.27.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.28.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.29.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.30.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
if true {
{
match (&self.31.rows_to_insert(), &Some(1)) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
let kind = ::core::panicking::AssertKind::Eq;
::core::panicking::assert_failed(kind, &*left_val,
&*right_val, ::core::option::Option::None);
}
}
}
};
};
Some(1)
}
}
#[doc(hidden)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31,
ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13,
ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24, ST25,
ST26, ST27, ST28, ST29, ST30, ST31, Tab> Insertable<Tab> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)
where T: Insertable<Tab, Values = ValuesClause<ST, Tab>>,
T1: Insertable<Tab, Values = ValuesClause<ST1, Tab>>,
T2: Insertable<Tab, Values = ValuesClause<ST2, Tab>>,
T3: Insertable<Tab, Values = ValuesClause<ST3, Tab>>,
T4: Insertable<Tab, Values = ValuesClause<ST4, Tab>>,
T5: Insertable<Tab, Values = ValuesClause<ST5, Tab>>,
T6: Insertable<Tab, Values = ValuesClause<ST6, Tab>>,
T7: Insertable<Tab, Values = ValuesClause<ST7, Tab>>,
T8: Insertable<Tab, Values = ValuesClause<ST8, Tab>>,
T9: Insertable<Tab, Values = ValuesClause<ST9, Tab>>,
T10: Insertable<Tab, Values = ValuesClause<ST10, Tab>>,
T11: Insertable<Tab, Values = ValuesClause<ST11, Tab>>,
T12: Insertable<Tab, Values = ValuesClause<ST12, Tab>>,
T13: Insertable<Tab, Values = ValuesClause<ST13, Tab>>,
T14: Insertable<Tab, Values = ValuesClause<ST14, Tab>>,
T15: Insertable<Tab, Values = ValuesClause<ST15, Tab>>,
T16: Insertable<Tab, Values = ValuesClause<ST16, Tab>>,
T17: Insertable<Tab, Values = ValuesClause<ST17, Tab>>,
T18: Insertable<Tab, Values = ValuesClause<ST18, Tab>>,
T19: Insertable<Tab, Values = ValuesClause<ST19, Tab>>,
T20: Insertable<Tab, Values = ValuesClause<ST20, Tab>>,
T21: Insertable<Tab, Values = ValuesClause<ST21, Tab>>,
T22: Insertable<Tab, Values = ValuesClause<ST22, Tab>>,
T23: Insertable<Tab, Values = ValuesClause<ST23, Tab>>,
T24: Insertable<Tab, Values = ValuesClause<ST24, Tab>>,
T25: Insertable<Tab, Values = ValuesClause<ST25, Tab>>,
T26: Insertable<Tab, Values = ValuesClause<ST26, Tab>>,
T27: Insertable<Tab, Values = ValuesClause<ST27, Tab>>,
T28: Insertable<Tab, Values = ValuesClause<ST28, Tab>>,
T29: Insertable<Tab, Values = ValuesClause<ST29, Tab>>,
T30: Insertable<Tab, Values = ValuesClause<ST30, Tab>>,
T31: Insertable<Tab, Values = ValuesClause<ST31, Tab>> {
type Values =
ValuesClause<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10,
ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21,
ST22, ST23, ST24, ST25, ST26, ST27, ST28, ST29, ST30, ST31), Tab>;
fn values(self) -> Self::Values {
ValuesClause::new((self.0.values().values, self.1.values().values,
self.2.values().values, self.3.values().values,
self.4.values().values, self.5.values().values,
self.6.values().values, self.7.values().values,
self.8.values().values, self.9.values().values,
self.10.values().values, self.11.values().values,
self.12.values().values, self.13.values().values,
self.14.values().values, self.15.values().values,
self.16.values().values, self.17.values().values,
self.18.values().values, self.19.values().values,
self.20.values().values, self.21.values().values,
self.22.values().values, self.23.values().values,
self.24.values().values, self.25.values().values,
self.26.values().values, self.27.values().values,
self.28.values().values, self.29.values().values,
self.30.values().values, self.31.values().values))
}
}
impl<'a, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
T31, Tab> Insertable<Tab> for
&'a (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
T31) where
(&'a T, &'a T1, &'a T2, &'a T3, &'a T4, &'a T5, &'a T6, &'a T7, &'a T8,
&'a T9, &'a T10, &'a T11, &'a T12, &'a T13, &'a T14, &'a T15, &'a T16,
&'a T17, &'a T18, &'a T19, &'a T20, &'a T21, &'a T22, &'a T23, &'a T24,
&'a T25, &'a T26, &'a T27, &'a T28, &'a T29, &'a T30,
&'a T31): Insertable<Tab> {
type Values =
<(&'a T, &'a T1, &'a T2, &'a T3, &'a T4, &'a T5, &'a T6, &'a T7,
&'a T8, &'a T9, &'a T10, &'a T11, &'a T12, &'a T13, &'a T14, &'a T15,
&'a T16, &'a T17, &'a T18, &'a T19, &'a T20, &'a T21, &'a T22,
&'a T23, &'a T24, &'a T25, &'a T26, &'a T27, &'a T28, &'a T29,
&'a T30, &'a T31) as Insertable<Tab>>::Values;
fn values(self) -> Self::Values {
(&self.0, &self.1, &self.2, &self.3, &self.4, &self.5, &self.6,
&self.7, &self.8, &self.9, &self.10, &self.11, &self.12,
&self.13, &self.14, &self.15, &self.16, &self.17, &self.18,
&self.19, &self.20, &self.21, &self.22, &self.23, &self.24,
&self.25, &self.26, &self.27, &self.28, &self.29, &self.30,
&self.31).values()
}
}
#[allow(unused_assignments)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31,
Tab, __DB> InsertValues<__DB, Tab> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)
where Tab: Table, __DB: Backend, T: InsertValues<__DB, Tab>,
T1: InsertValues<__DB, Tab>, T2: InsertValues<__DB, Tab>,
T3: InsertValues<__DB, Tab>, T4: InsertValues<__DB, Tab>,
T5: InsertValues<__DB, Tab>, T6: InsertValues<__DB, Tab>,
T7: InsertValues<__DB, Tab>, T8: InsertValues<__DB, Tab>,
T9: InsertValues<__DB, Tab>, T10: InsertValues<__DB, Tab>,
T11: InsertValues<__DB, Tab>, T12: InsertValues<__DB, Tab>,
T13: InsertValues<__DB, Tab>, T14: InsertValues<__DB, Tab>,
T15: InsertValues<__DB, Tab>, T16: InsertValues<__DB, Tab>,
T17: InsertValues<__DB, Tab>, T18: InsertValues<__DB, Tab>,
T19: InsertValues<__DB, Tab>, T20: InsertValues<__DB, Tab>,
T21: InsertValues<__DB, Tab>, T22: InsertValues<__DB, Tab>,
T23: InsertValues<__DB, Tab>, T24: InsertValues<__DB, Tab>,
T25: InsertValues<__DB, Tab>, T26: InsertValues<__DB, Tab>,
T27: InsertValues<__DB, Tab>, T28: InsertValues<__DB, Tab>,
T29: InsertValues<__DB, Tab>, T30: InsertValues<__DB, Tab>,
T31: InsertValues<__DB, Tab> {
fn column_names(&self, mut out: AstPass<'_, '_, __DB>)
-> QueryResult<()> {
let mut needs_comma = false;
let noop_element = self.0.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.0.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.1.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.1.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.2.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.2.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.3.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.3.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.4.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.4.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.5.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.5.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.6.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.6.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.7.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.7.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.8.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.8.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.9.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.9.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.10.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.10.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.11.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.11.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.12.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.12.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.13.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.13.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.14.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.14.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.15.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.15.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.16.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.16.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.17.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.17.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.18.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.18.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.19.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.19.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.20.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.20.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.21.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.21.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.22.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.22.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.23.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.23.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.24.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.24.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.25.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.25.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.26.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.26.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.27.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.27.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.28.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.28.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.29.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.29.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.30.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.30.column_names(out.reborrow())?;
needs_comma = true;
}
let noop_element = self.31.is_noop(out.backend())?;
if !noop_element {
if needs_comma { out.push_sql(", "); }
self.31.column_names(out.reborrow())?;
needs_comma = true;
}
Ok(())
}
}
impl<__T, ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24,
ST25, ST26, ST27, ST28, ST29, ST30, ST31, Tab> Insertable<Tab> for
InsertableOptionHelper<__T,
(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13,
ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24, ST25,
ST26, ST27, ST28, ST29, ST30, ST31)> where __T: Insertable<Tab>,
__T::Values: Default {
type Values = __T::Values;
fn values(self) -> Self::Values {
self.0.map(|v| v.values()).unwrap_or_default()
}
}
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31,
QS> SelectableExpression<QS> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)
where T: SelectableExpression<QS>, T1: SelectableExpression<QS>,
T2: SelectableExpression<QS>, T3: SelectableExpression<QS>,
T4: SelectableExpression<QS>, T5: SelectableExpression<QS>,
T6: SelectableExpression<QS>, T7: SelectableExpression<QS>,
T8: SelectableExpression<QS>, T9: SelectableExpression<QS>,
T10: SelectableExpression<QS>, T11: SelectableExpression<QS>,
T12: SelectableExpression<QS>, T13: SelectableExpression<QS>,
T14: SelectableExpression<QS>, T15: SelectableExpression<QS>,
T16: SelectableExpression<QS>, T17: SelectableExpression<QS>,
T18: SelectableExpression<QS>, T19: SelectableExpression<QS>,
T20: SelectableExpression<QS>, T21: SelectableExpression<QS>,
T22: SelectableExpression<QS>, T23: SelectableExpression<QS>,
T24: SelectableExpression<QS>, T25: SelectableExpression<QS>,
T26: SelectableExpression<QS>, T27: SelectableExpression<QS>,
T28: SelectableExpression<QS>, T29: SelectableExpression<QS>,
T30: SelectableExpression<QS>, T31: SelectableExpression<QS>,
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
T31): AppearsOnTable<QS> {}
#[doc(hidden)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31,
QS> AppearsOnTable<QS> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)
where T: AppearsOnTable<QS>, T1: AppearsOnTable<QS>,
T2: AppearsOnTable<QS>, T3: AppearsOnTable<QS>, T4: AppearsOnTable<QS>,
T5: AppearsOnTable<QS>, T6: AppearsOnTable<QS>, T7: AppearsOnTable<QS>,
T8: AppearsOnTable<QS>, T9: AppearsOnTable<QS>, T10: AppearsOnTable<QS>,
T11: AppearsOnTable<QS>, T12: AppearsOnTable<QS>, T13: AppearsOnTable<QS>,
T14: AppearsOnTable<QS>, T15: AppearsOnTable<QS>, T16: AppearsOnTable<QS>,
T17: AppearsOnTable<QS>, T18: AppearsOnTable<QS>, T19: AppearsOnTable<QS>,
T20: AppearsOnTable<QS>, T21: AppearsOnTable<QS>, T22: AppearsOnTable<QS>,
T23: AppearsOnTable<QS>, T24: AppearsOnTable<QS>, T25: AppearsOnTable<QS>,
T26: AppearsOnTable<QS>, T27: AppearsOnTable<QS>, T28: AppearsOnTable<QS>,
T29: AppearsOnTable<QS>, T30: AppearsOnTable<QS>, T31: AppearsOnTable<QS>,
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
T31): Expression {
}
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31,
__DB> BatchValueHelper<__DB> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)
where T: BatchValueHelper<__DB>, T1: BatchValueHelper<__DB>,
T2: BatchValueHelper<__DB>, T3: BatchValueHelper<__DB>,
T4: BatchValueHelper<__DB>, T5: BatchValueHelper<__DB>,
T6: BatchValueHelper<__DB>, T7: BatchValueHelper<__DB>,
T8: BatchValueHelper<__DB>, T9: BatchValueHelper<__DB>,
T10: BatchValueHelper<__DB>, T11: BatchValueHelper<__DB>,
T12: BatchValueHelper<__DB>, T13: BatchValueHelper<__DB>,
T14: BatchValueHelper<__DB>, T15: BatchValueHelper<__DB>,
T16: BatchValueHelper<__DB>, T17: BatchValueHelper<__DB>,
T18: BatchValueHelper<__DB>, T19: BatchValueHelper<__DB>,
T20: BatchValueHelper<__DB>, T21: BatchValueHelper<__DB>,
T22: BatchValueHelper<__DB>, T23: BatchValueHelper<__DB>,
T24: BatchValueHelper<__DB>, T25: BatchValueHelper<__DB>,
T26: BatchValueHelper<__DB>, T27: BatchValueHelper<__DB>,
T28: BatchValueHelper<__DB>, T29: BatchValueHelper<__DB>,
T30: BatchValueHelper<__DB>, T31: BatchValueHelper<__DB>, __DB: Backend {
fn assign<'b>(&'b self, mut out: AstPass<'_, 'b, __DB>)
-> QueryResult<()> {
if 0 != 0 { out.push_sql(", "); }
self.0.assign(out.reborrow())?;
if 1 != 0 { out.push_sql(", "); }
self.1.assign(out.reborrow())?;
if 2 != 0 { out.push_sql(", "); }
self.2.assign(out.reborrow())?;
if 3 != 0 { out.push_sql(", "); }
self.3.assign(out.reborrow())?;
if 4 != 0 { out.push_sql(", "); }
self.4.assign(out.reborrow())?;
if 5 != 0 { out.push_sql(", "); }
self.5.assign(out.reborrow())?;
if 6 != 0 { out.push_sql(", "); }
self.6.assign(out.reborrow())?;
if 7 != 0 { out.push_sql(", "); }
self.7.assign(out.reborrow())?;
if 8 != 0 { out.push_sql(", "); }
self.8.assign(out.reborrow())?;
if 9 != 0 { out.push_sql(", "); }
self.9.assign(out.reborrow())?;
if 10 != 0 { out.push_sql(", "); }
self.10.assign(out.reborrow())?;
if 11 != 0 { out.push_sql(", "); }
self.11.assign(out.reborrow())?;
if 12 != 0 { out.push_sql(", "); }
self.12.assign(out.reborrow())?;
if 13 != 0 { out.push_sql(", "); }
self.13.assign(out.reborrow())?;
if 14 != 0 { out.push_sql(", "); }
self.14.assign(out.reborrow())?;
if 15 != 0 { out.push_sql(", "); }
self.15.assign(out.reborrow())?;
if 16 != 0 { out.push_sql(", "); }
self.16.assign(out.reborrow())?;
if 17 != 0 { out.push_sql(", "); }
self.17.assign(out.reborrow())?;
if 18 != 0 { out.push_sql(", "); }
self.18.assign(out.reborrow())?;
if 19 != 0 { out.push_sql(", "); }
self.19.assign(out.reborrow())?;
if 20 != 0 { out.push_sql(", "); }
self.20.assign(out.reborrow())?;
if 21 != 0 { out.push_sql(", "); }
self.21.assign(out.reborrow())?;
if 22 != 0 { out.push_sql(", "); }
self.22.assign(out.reborrow())?;
if 23 != 0 { out.push_sql(", "); }
self.23.assign(out.reborrow())?;
if 24 != 0 { out.push_sql(", "); }
self.24.assign(out.reborrow())?;
if 25 != 0 { out.push_sql(", "); }
self.25.assign(out.reborrow())?;
if 26 != 0 { out.push_sql(", "); }
self.26.assign(out.reborrow())?;
if 27 != 0 { out.push_sql(", "); }
self.27.assign(out.reborrow())?;
if 28 != 0 { out.push_sql(", "); }
self.28.assign(out.reborrow())?;
if 29 != 0 { out.push_sql(", "); }
self.29.assign(out.reborrow())?;
if 30 != 0 { out.push_sql(", "); }
self.30.assign(out.reborrow())?;
if 31 != 0 { out.push_sql(", "); }
self.31.assign(out.reborrow())?;
Ok(())
}
fn column_name<'b>(&'b self, mut out: AstPass<'_, 'b, __DB>)
-> QueryResult<()> {
if 0 != 0 { out.push_sql(", "); }
self.0.column_name(out.reborrow())?;
if 1 != 0 { out.push_sql(", "); }
self.1.column_name(out.reborrow())?;
if 2 != 0 { out.push_sql(", "); }
self.2.column_name(out.reborrow())?;
if 3 != 0 { out.push_sql(", "); }
self.3.column_name(out.reborrow())?;
if 4 != 0 { out.push_sql(", "); }
self.4.column_name(out.reborrow())?;
if 5 != 0 { out.push_sql(", "); }
self.5.column_name(out.reborrow())?;
if 6 != 0 { out.push_sql(", "); }
self.6.column_name(out.reborrow())?;
if 7 != 0 { out.push_sql(", "); }
self.7.column_name(out.reborrow())?;
if 8 != 0 { out.push_sql(", "); }
self.8.column_name(out.reborrow())?;
if 9 != 0 { out.push_sql(", "); }
self.9.column_name(out.reborrow())?;
if 10 != 0 { out.push_sql(", "); }
self.10.column_name(out.reborrow())?;
if 11 != 0 { out.push_sql(", "); }
self.11.column_name(out.reborrow())?;
if 12 != 0 { out.push_sql(", "); }
self.12.column_name(out.reborrow())?;
if 13 != 0 { out.push_sql(", "); }
self.13.column_name(out.reborrow())?;
if 14 != 0 { out.push_sql(", "); }
self.14.column_name(out.reborrow())?;
if 15 != 0 { out.push_sql(", "); }
self.15.column_name(out.reborrow())?;
if 16 != 0 { out.push_sql(", "); }
self.16.column_name(out.reborrow())?;
if 17 != 0 { out.push_sql(", "); }
self.17.column_name(out.reborrow())?;
if 18 != 0 { out.push_sql(", "); }
self.18.column_name(out.reborrow())?;
if 19 != 0 { out.push_sql(", "); }
self.19.column_name(out.reborrow())?;
if 20 != 0 { out.push_sql(", "); }
self.20.column_name(out.reborrow())?;
if 21 != 0 { out.push_sql(", "); }
self.21.column_name(out.reborrow())?;
if 22 != 0 { out.push_sql(", "); }
self.22.column_name(out.reborrow())?;
if 23 != 0 { out.push_sql(", "); }
self.23.column_name(out.reborrow())?;
if 24 != 0 { out.push_sql(", "); }
self.24.column_name(out.reborrow())?;
if 25 != 0 { out.push_sql(", "); }
self.25.column_name(out.reborrow())?;
if 26 != 0 { out.push_sql(", "); }
self.26.column_name(out.reborrow())?;
if 27 != 0 { out.push_sql(", "); }
self.27.column_name(out.reborrow())?;
if 28 != 0 { out.push_sql(", "); }
self.28.column_name(out.reborrow())?;
if 29 != 0 { out.push_sql(", "); }
self.29.column_name(out.reborrow())?;
if 30 != 0 { out.push_sql(", "); }
self.30.column_name(out.reborrow())?;
if 31 != 0 { out.push_sql(", "); }
self.31.column_name(out.reborrow())?;
Ok(())
}
fn bind_value<'b>(&'b self, mut out: AstPass<'_, 'b, __DB>)
-> QueryResult<()> {
if 0 != 0 { out.push_sql(", "); }
self.0.bind_value(out.reborrow())?;
if 1 != 0 { out.push_sql(", "); }
self.1.bind_value(out.reborrow())?;
if 2 != 0 { out.push_sql(", "); }
self.2.bind_value(out.reborrow())?;
if 3 != 0 { out.push_sql(", "); }
self.3.bind_value(out.reborrow())?;
if 4 != 0 { out.push_sql(", "); }
self.4.bind_value(out.reborrow())?;
if 5 != 0 { out.push_sql(", "); }
self.5.bind_value(out.reborrow())?;
if 6 != 0 { out.push_sql(", "); }
self.6.bind_value(out.reborrow())?;
if 7 != 0 { out.push_sql(", "); }
self.7.bind_value(out.reborrow())?;
if 8 != 0 { out.push_sql(", "); }
self.8.bind_value(out.reborrow())?;
if 9 != 0 { out.push_sql(", "); }
self.9.bind_value(out.reborrow())?;
if 10 != 0 { out.push_sql(", "); }
self.10.bind_value(out.reborrow())?;
if 11 != 0 { out.push_sql(", "); }
self.11.bind_value(out.reborrow())?;
if 12 != 0 { out.push_sql(", "); }
self.12.bind_value(out.reborrow())?;
if 13 != 0 { out.push_sql(", "); }
self.13.bind_value(out.reborrow())?;
if 14 != 0 { out.push_sql(", "); }
self.14.bind_value(out.reborrow())?;
if 15 != 0 { out.push_sql(", "); }
self.15.bind_value(out.reborrow())?;
if 16 != 0 { out.push_sql(", "); }
self.16.bind_value(out.reborrow())?;
if 17 != 0 { out.push_sql(", "); }
self.17.bind_value(out.reborrow())?;
if 18 != 0 { out.push_sql(", "); }
self.18.bind_value(out.reborrow())?;
if 19 != 0 { out.push_sql(", "); }
self.19.bind_value(out.reborrow())?;
if 20 != 0 { out.push_sql(", "); }
self.20.bind_value(out.reborrow())?;
if 21 != 0 { out.push_sql(", "); }
self.21.bind_value(out.reborrow())?;
if 22 != 0 { out.push_sql(", "); }
self.22.bind_value(out.reborrow())?;
if 23 != 0 { out.push_sql(", "); }
self.23.bind_value(out.reborrow())?;
if 24 != 0 { out.push_sql(", "); }
self.24.bind_value(out.reborrow())?;
if 25 != 0 { out.push_sql(", "); }
self.25.bind_value(out.reborrow())?;
if 26 != 0 { out.push_sql(", "); }
self.26.bind_value(out.reborrow())?;
if 27 != 0 { out.push_sql(", "); }
self.27.bind_value(out.reborrow())?;
if 28 != 0 { out.push_sql(", "); }
self.28.bind_value(out.reborrow())?;
if 29 != 0 { out.push_sql(", "); }
self.29.bind_value(out.reborrow())?;
if 30 != 0 { out.push_sql(", "); }
self.30.bind_value(out.reborrow())?;
if 31 != 0 { out.push_sql(", "); }
self.31.bind_value(out.reborrow())?;
Ok(())
}
}
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31,
ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13,
ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24, ST25,
ST26, ST27, ST28, ST29, ST30, ST31, __DB>
BatchKeyHelper<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10,
ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22,
ST23, ST24, ST25, ST26, ST27, ST28, ST29, ST30, ST31), __DB> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)
where __DB: Backend, T: BatchKeyHelper<ST, __DB>,
T1: BatchKeyHelper<ST1, __DB>, T2: BatchKeyHelper<ST2, __DB>,
T3: BatchKeyHelper<ST3, __DB>, T4: BatchKeyHelper<ST4, __DB>,
T5: BatchKeyHelper<ST5, __DB>, T6: BatchKeyHelper<ST6, __DB>,
T7: BatchKeyHelper<ST7, __DB>, T8: BatchKeyHelper<ST8, __DB>,
T9: BatchKeyHelper<ST9, __DB>, T10: BatchKeyHelper<ST10, __DB>,
T11: BatchKeyHelper<ST11, __DB>, T12: BatchKeyHelper<ST12, __DB>,
T13: BatchKeyHelper<ST13, __DB>, T14: BatchKeyHelper<ST14, __DB>,
T15: BatchKeyHelper<ST15, __DB>, T16: BatchKeyHelper<ST16, __DB>,
T17: BatchKeyHelper<ST17, __DB>, T18: BatchKeyHelper<ST18, __DB>,
T19: BatchKeyHelper<ST19, __DB>, T20: BatchKeyHelper<ST20, __DB>,
T21: BatchKeyHelper<ST21, __DB>, T22: BatchKeyHelper<ST22, __DB>,
T23: BatchKeyHelper<ST23, __DB>, T24: BatchKeyHelper<ST24, __DB>,
T25: BatchKeyHelper<ST25, __DB>, T26: BatchKeyHelper<ST26, __DB>,
T27: BatchKeyHelper<ST27, __DB>, T28: BatchKeyHelper<ST28, __DB>,
T29: BatchKeyHelper<ST29, __DB>, T30: BatchKeyHelper<ST30, __DB>,
T31: BatchKeyHelper<ST31, __DB> {
fn bind_value<'b>(&'b self, mut out: AstPass<'_, 'b, __DB>)
-> QueryResult<()> {
if 0 != 0 { out.push_sql(", "); }
self.0.bind_value(out.reborrow())?;
if 1 != 0 { out.push_sql(", "); }
self.1.bind_value(out.reborrow())?;
if 2 != 0 { out.push_sql(", "); }
self.2.bind_value(out.reborrow())?;
if 3 != 0 { out.push_sql(", "); }
self.3.bind_value(out.reborrow())?;
if 4 != 0 { out.push_sql(", "); }
self.4.bind_value(out.reborrow())?;
if 5 != 0 { out.push_sql(", "); }
self.5.bind_value(out.reborrow())?;
if 6 != 0 { out.push_sql(", "); }
self.6.bind_value(out.reborrow())?;
if 7 != 0 { out.push_sql(", "); }
self.7.bind_value(out.reborrow())?;
if 8 != 0 { out.push_sql(", "); }
self.8.bind_value(out.reborrow())?;
if 9 != 0 { out.push_sql(", "); }
self.9.bind_value(out.reborrow())?;
if 10 != 0 { out.push_sql(", "); }
self.10.bind_value(out.reborrow())?;
if 11 != 0 { out.push_sql(", "); }
self.11.bind_value(out.reborrow())?;
if 12 != 0 { out.push_sql(", "); }
self.12.bind_value(out.reborrow())?;
if 13 != 0 { out.push_sql(", "); }
self.13.bind_value(out.reborrow())?;
if 14 != 0 { out.push_sql(", "); }
self.14.bind_value(out.reborrow())?;
if 15 != 0 { out.push_sql(", "); }
self.15.bind_value(out.reborrow())?;
if 16 != 0 { out.push_sql(", "); }
self.16.bind_value(out.reborrow())?;
if 17 != 0 { out.push_sql(", "); }
self.17.bind_value(out.reborrow())?;
if 18 != 0 { out.push_sql(", "); }
self.18.bind_value(out.reborrow())?;
if 19 != 0 { out.push_sql(", "); }
self.19.bind_value(out.reborrow())?;
if 20 != 0 { out.push_sql(", "); }
self.20.bind_value(out.reborrow())?;
if 21 != 0 { out.push_sql(", "); }
self.21.bind_value(out.reborrow())?;
if 22 != 0 { out.push_sql(", "); }
self.22.bind_value(out.reborrow())?;
if 23 != 0 { out.push_sql(", "); }
self.23.bind_value(out.reborrow())?;
if 24 != 0 { out.push_sql(", "); }
self.24.bind_value(out.reborrow())?;
if 25 != 0 { out.push_sql(", "); }
self.25.bind_value(out.reborrow())?;
if 26 != 0 { out.push_sql(", "); }
self.26.bind_value(out.reborrow())?;
if 27 != 0 { out.push_sql(", "); }
self.27.bind_value(out.reborrow())?;
if 28 != 0 { out.push_sql(", "); }
self.28.bind_value(out.reborrow())?;
if 29 != 0 { out.push_sql(", "); }
self.29.bind_value(out.reborrow())?;
if 30 != 0 { out.push_sql(", "); }
self.30.bind_value(out.reborrow())?;
if 31 != 0 { out.push_sql(", "); }
self.31.bind_value(out.reborrow())?;
Ok(())
}
fn column_name<'b>(&'b self, mut out: AstPass<'_, 'b, __DB>)
-> QueryResult<()> {
if 0 != 0 { out.push_sql(", "); }
self.0.column_name(out.reborrow())?;
if 1 != 0 { out.push_sql(", "); }
self.1.column_name(out.reborrow())?;
if 2 != 0 { out.push_sql(", "); }
self.2.column_name(out.reborrow())?;
if 3 != 0 { out.push_sql(", "); }
self.3.column_name(out.reborrow())?;
if 4 != 0 { out.push_sql(", "); }
self.4.column_name(out.reborrow())?;
if 5 != 0 { out.push_sql(", "); }
self.5.column_name(out.reborrow())?;
if 6 != 0 { out.push_sql(", "); }
self.6.column_name(out.reborrow())?;
if 7 != 0 { out.push_sql(", "); }
self.7.column_name(out.reborrow())?;
if 8 != 0 { out.push_sql(", "); }
self.8.column_name(out.reborrow())?;
if 9 != 0 { out.push_sql(", "); }
self.9.column_name(out.reborrow())?;
if 10 != 0 { out.push_sql(", "); }
self.10.column_name(out.reborrow())?;
if 11 != 0 { out.push_sql(", "); }
self.11.column_name(out.reborrow())?;
if 12 != 0 { out.push_sql(", "); }
self.12.column_name(out.reborrow())?;
if 13 != 0 { out.push_sql(", "); }
self.13.column_name(out.reborrow())?;
if 14 != 0 { out.push_sql(", "); }
self.14.column_name(out.reborrow())?;
if 15 != 0 { out.push_sql(", "); }
self.15.column_name(out.reborrow())?;
if 16 != 0 { out.push_sql(", "); }
self.16.column_name(out.reborrow())?;
if 17 != 0 { out.push_sql(", "); }
self.17.column_name(out.reborrow())?;
if 18 != 0 { out.push_sql(", "); }
self.18.column_name(out.reborrow())?;
if 19 != 0 { out.push_sql(", "); }
self.19.column_name(out.reborrow())?;
if 20 != 0 { out.push_sql(", "); }
self.20.column_name(out.reborrow())?;
if 21 != 0 { out.push_sql(", "); }
self.21.column_name(out.reborrow())?;
if 22 != 0 { out.push_sql(", "); }
self.22.column_name(out.reborrow())?;
if 23 != 0 { out.push_sql(", "); }
self.23.column_name(out.reborrow())?;
if 24 != 0 { out.push_sql(", "); }
self.24.column_name(out.reborrow())?;
if 25 != 0 { out.push_sql(", "); }
self.25.column_name(out.reborrow())?;
if 26 != 0 { out.push_sql(", "); }
self.26.column_name(out.reborrow())?;
if 27 != 0 { out.push_sql(", "); }
self.27.column_name(out.reborrow())?;
if 28 != 0 { out.push_sql(", "); }
self.28.column_name(out.reborrow())?;
if 29 != 0 { out.push_sql(", "); }
self.29.column_name(out.reborrow())?;
if 30 != 0 { out.push_sql(", "); }
self.30.column_name(out.reborrow())?;
if 31 != 0 { out.push_sql(", "); }
self.31.column_name(out.reborrow())?;
Ok(())
}
fn assign<'b>(pk:
&'b (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22,
ST23, ST24, ST25, ST26, ST27, ST28, ST29, ST30, ST31),
mut out: AstPass<'_, 'b, __DB>) -> QueryResult<()> {
if 0 != 0 { out.push_sql(" AND "); }
<T as BatchKeyHelper<ST, __DB>>::assign(&pk.0, out.reborrow())?;
if 1 != 0 { out.push_sql(" AND "); }
<T1 as BatchKeyHelper<ST1, __DB>>::assign(&pk.1, out.reborrow())?;
if 2 != 0 { out.push_sql(" AND "); }
<T2 as BatchKeyHelper<ST2, __DB>>::assign(&pk.2, out.reborrow())?;
if 3 != 0 { out.push_sql(" AND "); }
<T3 as BatchKeyHelper<ST3, __DB>>::assign(&pk.3, out.reborrow())?;
if 4 != 0 { out.push_sql(" AND "); }
<T4 as BatchKeyHelper<ST4, __DB>>::assign(&pk.4, out.reborrow())?;
if 5 != 0 { out.push_sql(" AND "); }
<T5 as BatchKeyHelper<ST5, __DB>>::assign(&pk.5, out.reborrow())?;
if 6 != 0 { out.push_sql(" AND "); }
<T6 as BatchKeyHelper<ST6, __DB>>::assign(&pk.6, out.reborrow())?;
if 7 != 0 { out.push_sql(" AND "); }
<T7 as BatchKeyHelper<ST7, __DB>>::assign(&pk.7, out.reborrow())?;
if 8 != 0 { out.push_sql(" AND "); }
<T8 as BatchKeyHelper<ST8, __DB>>::assign(&pk.8, out.reborrow())?;
if 9 != 0 { out.push_sql(" AND "); }
<T9 as BatchKeyHelper<ST9, __DB>>::assign(&pk.9, out.reborrow())?;
if 10 != 0 { out.push_sql(" AND "); }
<T10 as BatchKeyHelper<ST10, __DB>>::assign(&pk.10, out.reborrow())?;
if 11 != 0 { out.push_sql(" AND "); }
<T11 as BatchKeyHelper<ST11, __DB>>::assign(&pk.11, out.reborrow())?;
if 12 != 0 { out.push_sql(" AND "); }
<T12 as BatchKeyHelper<ST12, __DB>>::assign(&pk.12, out.reborrow())?;
if 13 != 0 { out.push_sql(" AND "); }
<T13 as BatchKeyHelper<ST13, __DB>>::assign(&pk.13, out.reborrow())?;
if 14 != 0 { out.push_sql(" AND "); }
<T14 as BatchKeyHelper<ST14, __DB>>::assign(&pk.14, out.reborrow())?;
if 15 != 0 { out.push_sql(" AND "); }
<T15 as BatchKeyHelper<ST15, __DB>>::assign(&pk.15, out.reborrow())?;
if 16 != 0 { out.push_sql(" AND "); }
<T16 as BatchKeyHelper<ST16, __DB>>::assign(&pk.16, out.reborrow())?;
if 17 != 0 { out.push_sql(" AND "); }
<T17 as BatchKeyHelper<ST17, __DB>>::assign(&pk.17, out.reborrow())?;
if 18 != 0 { out.push_sql(" AND "); }
<T18 as BatchKeyHelper<ST18, __DB>>::assign(&pk.18, out.reborrow())?;
if 19 != 0 { out.push_sql(" AND "); }
<T19 as BatchKeyHelper<ST19, __DB>>::assign(&pk.19, out.reborrow())?;
if 20 != 0 { out.push_sql(" AND "); }
<T20 as BatchKeyHelper<ST20, __DB>>::assign(&pk.20, out.reborrow())?;
if 21 != 0 { out.push_sql(" AND "); }
<T21 as BatchKeyHelper<ST21, __DB>>::assign(&pk.21, out.reborrow())?;
if 22 != 0 { out.push_sql(" AND "); }
<T22 as BatchKeyHelper<ST22, __DB>>::assign(&pk.22, out.reborrow())?;
if 23 != 0 { out.push_sql(" AND "); }
<T23 as BatchKeyHelper<ST23, __DB>>::assign(&pk.23, out.reborrow())?;
if 24 != 0 { out.push_sql(" AND "); }
<T24 as BatchKeyHelper<ST24, __DB>>::assign(&pk.24, out.reborrow())?;
if 25 != 0 { out.push_sql(" AND "); }
<T25 as BatchKeyHelper<ST25, __DB>>::assign(&pk.25, out.reborrow())?;
if 26 != 0 { out.push_sql(" AND "); }
<T26 as BatchKeyHelper<ST26, __DB>>::assign(&pk.26, out.reborrow())?;
if 27 != 0 { out.push_sql(" AND "); }
<T27 as BatchKeyHelper<ST27, __DB>>::assign(&pk.27, out.reborrow())?;
if 28 != 0 { out.push_sql(" AND "); }
<T28 as BatchKeyHelper<ST28, __DB>>::assign(&pk.28, out.reborrow())?;
if 29 != 0 { out.push_sql(" AND "); }
<T29 as BatchKeyHelper<ST29, __DB>>::assign(&pk.29, out.reborrow())?;
if 30 != 0 { out.push_sql(" AND "); }
<T30 as BatchKeyHelper<ST30, __DB>>::assign(&pk.30, out.reborrow())?;
if 31 != 0 { out.push_sql(" AND "); }
<T31 as BatchKeyHelper<ST31, __DB>>::assign(&pk.31, out.reborrow())?;
Ok(())
}
}
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31,
W>
crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>
for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)
where
T: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T1: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T2: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T3: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T4: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T5: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T6: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T7: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T8: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T9: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T10: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T11: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T12: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T13: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T14: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T15: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T16: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T17: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T18: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T19: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T20: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T21: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T22: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T23: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T24: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T25: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T26: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T27: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T28: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T29: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T30: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>,
T31: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::WhereClause<W>>
{}
impl<'a, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
T31, DB>
crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)
where DB: crate::backend::Backend,
T: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T1: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T2: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T3: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T4: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T5: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T6: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T7: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T8: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T9: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T10: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T11: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T12: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T13: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T14: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T15: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T16: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T17: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T18: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T19: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T20: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T21: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T22: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T23: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T24: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T25: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T26: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T27: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T28: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T29: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T30: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>>,
T31: crate::query_builder::update_statement::private::AllowFilterForUpdate<crate::query_builder::where_clause::BoxedWhereClause<'a,
DB>> {}
impl<'a, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
T31> crate::query_builder::update_statement::changeset::IntoOwned for
(&'a T, &'a T1, &'a T2, &'a T3, &'a T4, &'a T5, &'a T6, &'a T7, &'a T8,
&'a T9, &'a T10, &'a T11, &'a T12, &'a T13, &'a T14, &'a T15, &'a T16,
&'a T17, &'a T18, &'a T19, &'a T20, &'a T21, &'a T22, &'a T23, &'a T24,
&'a T25, &'a T26, &'a T27, &'a T28, &'a T29, &'a T30, &'a T31) where
&'a T: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T1: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T2: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T3: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T4: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T5: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T6: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T7: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T8: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T9: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T10: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T11: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T12: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T13: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T14: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T15: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T16: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T17: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T18: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T19: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T20: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T21: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T22: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T23: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T24: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T25: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T26: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T27: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T28: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T29: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T30: crate::query_builder::update_statement::changeset::IntoOwned,
&'a T31: crate::query_builder::update_statement::changeset::IntoOwned {
type Owned =
(<&'a T as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T1 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T2 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T3 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T4 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T5 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T6 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T7 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T8 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T9 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T10 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T11 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T12 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T13 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T14 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T15 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T16 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T17 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T18 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T19 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T20 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T21 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T22 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T23 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T24 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T25 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T26 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T27 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T28 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T29 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T30 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned,
<&'a T31 as
crate::query_builder::update_statement::changeset::IntoOwned>::Owned);
fn into_owned(self) -> Self::Owned {
(<&'a T as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.0),
<&'a T1 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.1),
<&'a T2 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.2),
<&'a T3 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.3),
<&'a T4 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.4),
<&'a T5 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.5),
<&'a T6 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.6),
<&'a T7 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.7),
<&'a T8 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.8),
<&'a T9 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.9),
<&'a T10 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.10),
<&'a T11 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.11),
<&'a T12 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.12),
<&'a T13 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.13),
<&'a T14 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.14),
<&'a T15 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.15),
<&'a T16 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.16),
<&'a T17 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.17),
<&'a T18 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.18),
<&'a T19 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.19),
<&'a T20 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.20),
<&'a T21 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.21),
<&'a T22 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.22),
<&'a T23 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.23),
<&'a T24 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.24),
<&'a T25 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.25),
<&'a T26 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.26),
<&'a T27 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.27),
<&'a T28 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.28),
<&'a T29 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.29),
<&'a T30 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.30),
<&'a T31 as
crate::query_builder::update_statement::changeset::IntoOwned>::into_owned(&self.31))
}
}
#[doc(hidden)]
impl<Target, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
T30, T31> AsChangeset for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)
where T: AsChangeset<Target = Target>, T1: AsChangeset<Target = Target>,
T2: AsChangeset<Target = Target>, T3: AsChangeset<Target = Target>,
T4: AsChangeset<Target = Target>, T5: AsChangeset<Target = Target>,
T6: AsChangeset<Target = Target>, T7: AsChangeset<Target = Target>,
T8: AsChangeset<Target = Target>, T9: AsChangeset<Target = Target>,
T10: AsChangeset<Target = Target>, T11: AsChangeset<Target = Target>,
T12: AsChangeset<Target = Target>, T13: AsChangeset<Target = Target>,
T14: AsChangeset<Target = Target>, T15: AsChangeset<Target = Target>,
T16: AsChangeset<Target = Target>, T17: AsChangeset<Target = Target>,
T18: AsChangeset<Target = Target>, T19: AsChangeset<Target = Target>,
T20: AsChangeset<Target = Target>, T21: AsChangeset<Target = Target>,
T22: AsChangeset<Target = Target>, T23: AsChangeset<Target = Target>,
T24: AsChangeset<Target = Target>, T25: AsChangeset<Target = Target>,
T26: AsChangeset<Target = Target>, T27: AsChangeset<Target = Target>,
T28: AsChangeset<Target = Target>, T29: AsChangeset<Target = Target>,
T30: AsChangeset<Target = Target>, T31: AsChangeset<Target = Target>,
Target: QuerySource {
type Target = Target;
type Changeset =
(T::Changeset, T1::Changeset, T2::Changeset, T3::Changeset,
T4::Changeset, T5::Changeset, T6::Changeset, T7::Changeset,
T8::Changeset, T9::Changeset, T10::Changeset, T11::Changeset,
T12::Changeset, T13::Changeset, T14::Changeset, T15::Changeset,
T16::Changeset, T17::Changeset, T18::Changeset, T19::Changeset,
T20::Changeset, T21::Changeset, T22::Changeset, T23::Changeset,
T24::Changeset, T25::Changeset, T26::Changeset, T27::Changeset,
T28::Changeset, T29::Changeset, T30::Changeset, T31::Changeset);
fn as_changeset(self) -> Self::Changeset {
(self.0.as_changeset(), self.1.as_changeset(), self.2.as_changeset(),
self.3.as_changeset(), self.4.as_changeset(),
self.5.as_changeset(), self.6.as_changeset(),
self.7.as_changeset(), self.8.as_changeset(),
self.9.as_changeset(), self.10.as_changeset(),
self.11.as_changeset(), self.12.as_changeset(),
self.13.as_changeset(), self.14.as_changeset(),
self.15.as_changeset(), self.16.as_changeset(),
self.17.as_changeset(), self.18.as_changeset(),
self.19.as_changeset(), self.20.as_changeset(),
self.21.as_changeset(), self.22.as_changeset(),
self.23.as_changeset(), self.24.as_changeset(),
self.25.as_changeset(), self.26.as_changeset(),
self.27.as_changeset(), self.28.as_changeset(),
self.29.as_changeset(), self.30.as_changeset(),
self.31.as_changeset())
}
}
#[doc(hidden)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31,
Parent> BelongsTo<Parent> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)
where T: BelongsTo<Parent> {
type ForeignKey = T::ForeignKey;
type ForeignKeyColumn = T::ForeignKeyColumn;
fn foreign_key(&self) -> Option<&Self::ForeignKey> {
self.0.foreign_key()
}
fn foreign_key_column() -> Self::ForeignKeyColumn {
T::foreign_key_column()
}
}
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31,
Next> TupleAppend<Next> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)
{
type Output =
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
T30, T31, Next);
#[allow(non_snake_case)]
fn tuple_append(self, next: Next) -> Self::Output {
let (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
T27, T28, T29, T30, T31) = self;
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
T29, T30, T31, next)
}
}
#[doc(hidden)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31>
SqlType for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)
where T: SqlType, T1: SqlType, T2: SqlType, T3: SqlType, T4: SqlType,
T5: SqlType, T6: SqlType, T7: SqlType, T8: SqlType, T9: SqlType,
T10: SqlType, T11: SqlType, T12: SqlType, T13: SqlType, T14: SqlType,
T15: SqlType, T16: SqlType, T17: SqlType, T18: SqlType, T19: SqlType,
T20: SqlType, T21: SqlType, T22: SqlType, T23: SqlType, T24: SqlType,
T25: SqlType, T26: SqlType, T27: SqlType, T28: SqlType, T29: SqlType,
T30: SqlType, T31: SqlType, T1::IsNull: OneIsNullable<T::IsNull>,
T2::IsNull: OneIsNullable<<T1::IsNull as OneIsNullable<T::IsNull>>::Out>,
T3::IsNull: OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as OneIsNullable<T::IsNull>>::Out>>::Out>,
T4::IsNull: OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>,
T5::IsNull: OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>,
T6::IsNull: OneIsNullable<<T5::IsNull as
OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>>::Out>,
T7::IsNull: OneIsNullable<<T6::IsNull as
OneIsNullable<<T5::IsNull as
OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>,
T8::IsNull: OneIsNullable<<T7::IsNull as
OneIsNullable<<T6::IsNull as
OneIsNullable<<T5::IsNull as
OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>,
T9::IsNull: OneIsNullable<<T8::IsNull as
OneIsNullable<<T7::IsNull as
OneIsNullable<<T6::IsNull as
OneIsNullable<<T5::IsNull as
OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>,
T10::IsNull: OneIsNullable<<T9::IsNull as
OneIsNullable<<T8::IsNull as
OneIsNullable<<T7::IsNull as
OneIsNullable<<T6::IsNull as
OneIsNullable<<T5::IsNull as
OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>,
T11::IsNull: OneIsNullable<<T10::IsNull as
OneIsNullable<<T9::IsNull as
OneIsNullable<<T8::IsNull as
OneIsNullable<<T7::IsNull as
OneIsNullable<<T6::IsNull as
OneIsNullable<<T5::IsNull as
OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>,
T12::IsNull: OneIsNullable<<T11::IsNull as
OneIsNullable<<T10::IsNull as
OneIsNullable<<T9::IsNull as
OneIsNullable<<T8::IsNull as
OneIsNullable<<T7::IsNull as
OneIsNullable<<T6::IsNull as
OneIsNullable<<T5::IsNull as
OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>,
T13::IsNull: OneIsNullable<<T12::IsNull as
OneIsNullable<<T11::IsNull as
OneIsNullable<<T10::IsNull as
OneIsNullable<<T9::IsNull as
OneIsNullable<<T8::IsNull as
OneIsNullable<<T7::IsNull as
OneIsNullable<<T6::IsNull as
OneIsNullable<<T5::IsNull as
OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>,
T14::IsNull: OneIsNullable<<T13::IsNull as
OneIsNullable<<T12::IsNull as
OneIsNullable<<T11::IsNull as
OneIsNullable<<T10::IsNull as
OneIsNullable<<T9::IsNull as
OneIsNullable<<T8::IsNull as
OneIsNullable<<T7::IsNull as
OneIsNullable<<T6::IsNull as
OneIsNullable<<T5::IsNull as
OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>,
T15::IsNull: OneIsNullable<<T14::IsNull as
OneIsNullable<<T13::IsNull as
OneIsNullable<<T12::IsNull as
OneIsNullable<<T11::IsNull as
OneIsNullable<<T10::IsNull as
OneIsNullable<<T9::IsNull as
OneIsNullable<<T8::IsNull as
OneIsNullable<<T7::IsNull as
OneIsNullable<<T6::IsNull as
OneIsNullable<<T5::IsNull as
OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>,
T16::IsNull: OneIsNullable<<T15::IsNull as
OneIsNullable<<T14::IsNull as
OneIsNullable<<T13::IsNull as
OneIsNullable<<T12::IsNull as
OneIsNullable<<T11::IsNull as
OneIsNullable<<T10::IsNull as
OneIsNullable<<T9::IsNull as
OneIsNullable<<T8::IsNull as
OneIsNullable<<T7::IsNull as
OneIsNullable<<T6::IsNull as
OneIsNullable<<T5::IsNull as
OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>,
T17::IsNull: OneIsNullable<<T16::IsNull as
OneIsNullable<<T15::IsNull as
OneIsNullable<<T14::IsNull as
OneIsNullable<<T13::IsNull as
OneIsNullable<<T12::IsNull as
OneIsNullable<<T11::IsNull as
OneIsNullable<<T10::IsNull as
OneIsNullable<<T9::IsNull as
OneIsNullable<<T8::IsNull as
OneIsNullable<<T7::IsNull as
OneIsNullable<<T6::IsNull as
OneIsNullable<<T5::IsNull as
OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>,
T18::IsNull: OneIsNullable<<T17::IsNull as
OneIsNullable<<T16::IsNull as
OneIsNullable<<T15::IsNull as
OneIsNullable<<T14::IsNull as
OneIsNullable<<T13::IsNull as
OneIsNullable<<T12::IsNull as
OneIsNullable<<T11::IsNull as
OneIsNullable<<T10::IsNull as
OneIsNullable<<T9::IsNull as
OneIsNullable<<T8::IsNull as
OneIsNullable<<T7::IsNull as
OneIsNullable<<T6::IsNull as
OneIsNullable<<T5::IsNull as
OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>,
T19::IsNull: OneIsNullable<<T18::IsNull as
OneIsNullable<<T17::IsNull as
OneIsNullable<<T16::IsNull as
OneIsNullable<<T15::IsNull as
OneIsNullable<<T14::IsNull as
OneIsNullable<<T13::IsNull as
OneIsNullable<<T12::IsNull as
OneIsNullable<<T11::IsNull as
OneIsNullable<<T10::IsNull as
OneIsNullable<<T9::IsNull as
OneIsNullable<<T8::IsNull as
OneIsNullable<<T7::IsNull as
OneIsNullable<<T6::IsNull as
OneIsNullable<<T5::IsNull as
OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>,
T20::IsNull: OneIsNullable<<T19::IsNull as
OneIsNullable<<T18::IsNull as
OneIsNullable<<T17::IsNull as
OneIsNullable<<T16::IsNull as
OneIsNullable<<T15::IsNull as
OneIsNullable<<T14::IsNull as
OneIsNullable<<T13::IsNull as
OneIsNullable<<T12::IsNull as
OneIsNullable<<T11::IsNull as
OneIsNullable<<T10::IsNull as
OneIsNullable<<T9::IsNull as
OneIsNullable<<T8::IsNull as
OneIsNullable<<T7::IsNull as
OneIsNullable<<T6::IsNull as
OneIsNullable<<T5::IsNull as
OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>,
T21::IsNull: OneIsNullable<<T20::IsNull as
OneIsNullable<<T19::IsNull as
OneIsNullable<<T18::IsNull as
OneIsNullable<<T17::IsNull as
OneIsNullable<<T16::IsNull as
OneIsNullable<<T15::IsNull as
OneIsNullable<<T14::IsNull as
OneIsNullable<<T13::IsNull as
OneIsNullable<<T12::IsNull as
OneIsNullable<<T11::IsNull as
OneIsNullable<<T10::IsNull as
OneIsNullable<<T9::IsNull as
OneIsNullable<<T8::IsNull as
OneIsNullable<<T7::IsNull as
OneIsNullable<<T6::IsNull as
OneIsNullable<<T5::IsNull as
OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>,
T22::IsNull: OneIsNullable<<T21::IsNull as
OneIsNullable<<T20::IsNull as
OneIsNullable<<T19::IsNull as
OneIsNullable<<T18::IsNull as
OneIsNullable<<T17::IsNull as
OneIsNullable<<T16::IsNull as
OneIsNullable<<T15::IsNull as
OneIsNullable<<T14::IsNull as
OneIsNullable<<T13::IsNull as
OneIsNullable<<T12::IsNull as
OneIsNullable<<T11::IsNull as
OneIsNullable<<T10::IsNull as
OneIsNullable<<T9::IsNull as
OneIsNullable<<T8::IsNull as
OneIsNullable<<T7::IsNull as
OneIsNullable<<T6::IsNull as
OneIsNullable<<T5::IsNull as
OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>,
T23::IsNull: OneIsNullable<<T22::IsNull as
OneIsNullable<<T21::IsNull as
OneIsNullable<<T20::IsNull as
OneIsNullable<<T19::IsNull as
OneIsNullable<<T18::IsNull as
OneIsNullable<<T17::IsNull as
OneIsNullable<<T16::IsNull as
OneIsNullable<<T15::IsNull as
OneIsNullable<<T14::IsNull as
OneIsNullable<<T13::IsNull as
OneIsNullable<<T12::IsNull as
OneIsNullable<<T11::IsNull as
OneIsNullable<<T10::IsNull as
OneIsNullable<<T9::IsNull as
OneIsNullable<<T8::IsNull as
OneIsNullable<<T7::IsNull as
OneIsNullable<<T6::IsNull as
OneIsNullable<<T5::IsNull as
OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>,
T24::IsNull: OneIsNullable<<T23::IsNull as
OneIsNullable<<T22::IsNull as
OneIsNullable<<T21::IsNull as
OneIsNullable<<T20::IsNull as
OneIsNullable<<T19::IsNull as
OneIsNullable<<T18::IsNull as
OneIsNullable<<T17::IsNull as
OneIsNullable<<T16::IsNull as
OneIsNullable<<T15::IsNull as
OneIsNullable<<T14::IsNull as
OneIsNullable<<T13::IsNull as
OneIsNullable<<T12::IsNull as
OneIsNullable<<T11::IsNull as
OneIsNullable<<T10::IsNull as
OneIsNullable<<T9::IsNull as
OneIsNullable<<T8::IsNull as
OneIsNullable<<T7::IsNull as
OneIsNullable<<T6::IsNull as
OneIsNullable<<T5::IsNull as
OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>,
T25::IsNull: OneIsNullable<<T24::IsNull as
OneIsNullable<<T23::IsNull as
OneIsNullable<<T22::IsNull as
OneIsNullable<<T21::IsNull as
OneIsNullable<<T20::IsNull as
OneIsNullable<<T19::IsNull as
OneIsNullable<<T18::IsNull as
OneIsNullable<<T17::IsNull as
OneIsNullable<<T16::IsNull as
OneIsNullable<<T15::IsNull as
OneIsNullable<<T14::IsNull as
OneIsNullable<<T13::IsNull as
OneIsNullable<<T12::IsNull as
OneIsNullable<<T11::IsNull as
OneIsNullable<<T10::IsNull as
OneIsNullable<<T9::IsNull as
OneIsNullable<<T8::IsNull as
OneIsNullable<<T7::IsNull as
OneIsNullable<<T6::IsNull as
OneIsNullable<<T5::IsNull as
OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>,
T26::IsNull: OneIsNullable<<T25::IsNull as
OneIsNullable<<T24::IsNull as
OneIsNullable<<T23::IsNull as
OneIsNullable<<T22::IsNull as
OneIsNullable<<T21::IsNull as
OneIsNullable<<T20::IsNull as
OneIsNullable<<T19::IsNull as
OneIsNullable<<T18::IsNull as
OneIsNullable<<T17::IsNull as
OneIsNullable<<T16::IsNull as
OneIsNullable<<T15::IsNull as
OneIsNullable<<T14::IsNull as
OneIsNullable<<T13::IsNull as
OneIsNullable<<T12::IsNull as
OneIsNullable<<T11::IsNull as
OneIsNullable<<T10::IsNull as
OneIsNullable<<T9::IsNull as
OneIsNullable<<T8::IsNull as
OneIsNullable<<T7::IsNull as
OneIsNullable<<T6::IsNull as
OneIsNullable<<T5::IsNull as
OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>,
T27::IsNull: OneIsNullable<<T26::IsNull as
OneIsNullable<<T25::IsNull as
OneIsNullable<<T24::IsNull as
OneIsNullable<<T23::IsNull as
OneIsNullable<<T22::IsNull as
OneIsNullable<<T21::IsNull as
OneIsNullable<<T20::IsNull as
OneIsNullable<<T19::IsNull as
OneIsNullable<<T18::IsNull as
OneIsNullable<<T17::IsNull as
OneIsNullable<<T16::IsNull as
OneIsNullable<<T15::IsNull as
OneIsNullable<<T14::IsNull as
OneIsNullable<<T13::IsNull as
OneIsNullable<<T12::IsNull as
OneIsNullable<<T11::IsNull as
OneIsNullable<<T10::IsNull as
OneIsNullable<<T9::IsNull as
OneIsNullable<<T8::IsNull as
OneIsNullable<<T7::IsNull as
OneIsNullable<<T6::IsNull as
OneIsNullable<<T5::IsNull as
OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>,
T28::IsNull: OneIsNullable<<T27::IsNull as
OneIsNullable<<T26::IsNull as
OneIsNullable<<T25::IsNull as
OneIsNullable<<T24::IsNull as
OneIsNullable<<T23::IsNull as
OneIsNullable<<T22::IsNull as
OneIsNullable<<T21::IsNull as
OneIsNullable<<T20::IsNull as
OneIsNullable<<T19::IsNull as
OneIsNullable<<T18::IsNull as
OneIsNullable<<T17::IsNull as
OneIsNullable<<T16::IsNull as
OneIsNullable<<T15::IsNull as
OneIsNullable<<T14::IsNull as
OneIsNullable<<T13::IsNull as
OneIsNullable<<T12::IsNull as
OneIsNullable<<T11::IsNull as
OneIsNullable<<T10::IsNull as
OneIsNullable<<T9::IsNull as
OneIsNullable<<T8::IsNull as
OneIsNullable<<T7::IsNull as
OneIsNullable<<T6::IsNull as
OneIsNullable<<T5::IsNull as
OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>,
T29::IsNull: OneIsNullable<<T28::IsNull as
OneIsNullable<<T27::IsNull as
OneIsNullable<<T26::IsNull as
OneIsNullable<<T25::IsNull as
OneIsNullable<<T24::IsNull as
OneIsNullable<<T23::IsNull as
OneIsNullable<<T22::IsNull as
OneIsNullable<<T21::IsNull as
OneIsNullable<<T20::IsNull as
OneIsNullable<<T19::IsNull as
OneIsNullable<<T18::IsNull as
OneIsNullable<<T17::IsNull as
OneIsNullable<<T16::IsNull as
OneIsNullable<<T15::IsNull as
OneIsNullable<<T14::IsNull as
OneIsNullable<<T13::IsNull as
OneIsNullable<<T12::IsNull as
OneIsNullable<<T11::IsNull as
OneIsNullable<<T10::IsNull as
OneIsNullable<<T9::IsNull as
OneIsNullable<<T8::IsNull as
OneIsNullable<<T7::IsNull as
OneIsNullable<<T6::IsNull as
OneIsNullable<<T5::IsNull as
OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>,
T30::IsNull: OneIsNullable<<T29::IsNull as
OneIsNullable<<T28::IsNull as
OneIsNullable<<T27::IsNull as
OneIsNullable<<T26::IsNull as
OneIsNullable<<T25::IsNull as
OneIsNullable<<T24::IsNull as
OneIsNullable<<T23::IsNull as
OneIsNullable<<T22::IsNull as
OneIsNullable<<T21::IsNull as
OneIsNullable<<T20::IsNull as
OneIsNullable<<T19::IsNull as
OneIsNullable<<T18::IsNull as
OneIsNullable<<T17::IsNull as
OneIsNullable<<T16::IsNull as
OneIsNullable<<T15::IsNull as
OneIsNullable<<T14::IsNull as
OneIsNullable<<T13::IsNull as
OneIsNullable<<T12::IsNull as
OneIsNullable<<T11::IsNull as
OneIsNullable<<T10::IsNull as
OneIsNullable<<T9::IsNull as
OneIsNullable<<T8::IsNull as
OneIsNullable<<T7::IsNull as
OneIsNullable<<T6::IsNull as
OneIsNullable<<T5::IsNull as
OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>,
T31::IsNull: OneIsNullable<<T30::IsNull as
OneIsNullable<<T29::IsNull as
OneIsNullable<<T28::IsNull as
OneIsNullable<<T27::IsNull as
OneIsNullable<<T26::IsNull as
OneIsNullable<<T25::IsNull as
OneIsNullable<<T24::IsNull as
OneIsNullable<<T23::IsNull as
OneIsNullable<<T22::IsNull as
OneIsNullable<<T21::IsNull as
OneIsNullable<<T20::IsNull as
OneIsNullable<<T19::IsNull as
OneIsNullable<<T18::IsNull as
OneIsNullable<<T17::IsNull as
OneIsNullable<<T16::IsNull as
OneIsNullable<<T15::IsNull as
OneIsNullable<<T14::IsNull as
OneIsNullable<<T13::IsNull as
OneIsNullable<<T12::IsNull as
OneIsNullable<<T11::IsNull as
OneIsNullable<<T10::IsNull as
OneIsNullable<<T9::IsNull as
OneIsNullable<<T8::IsNull as
OneIsNullable<<T7::IsNull as
OneIsNullable<<T6::IsNull as
OneIsNullable<<T5::IsNull as
OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>
{
type IsNull =
<T31::IsNull as
OneIsNullable<<T30::IsNull as
OneIsNullable<<T29::IsNull as
OneIsNullable<<T28::IsNull as
OneIsNullable<<T27::IsNull as
OneIsNullable<<T26::IsNull as
OneIsNullable<<T25::IsNull as
OneIsNullable<<T24::IsNull as
OneIsNullable<<T23::IsNull as
OneIsNullable<<T22::IsNull as
OneIsNullable<<T21::IsNull as
OneIsNullable<<T20::IsNull as
OneIsNullable<<T19::IsNull as
OneIsNullable<<T18::IsNull as
OneIsNullable<<T17::IsNull as
OneIsNullable<<T16::IsNull as
OneIsNullable<<T15::IsNull as
OneIsNullable<<T14::IsNull as
OneIsNullable<<T13::IsNull as
OneIsNullable<<T12::IsNull as
OneIsNullable<<T11::IsNull as
OneIsNullable<<T10::IsNull as
OneIsNullable<<T9::IsNull as
OneIsNullable<<T8::IsNull as
OneIsNullable<<T7::IsNull as
OneIsNullable<<T6::IsNull as
OneIsNullable<<T5::IsNull as
OneIsNullable<<T4::IsNull as
OneIsNullable<<T3::IsNull as
OneIsNullable<<T2::IsNull as
OneIsNullable<<T1::IsNull as
OneIsNullable<T::IsNull>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out>>::Out;
}
#[doc(hidden)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31,
__DB, ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24,
ST25, ST26, ST27, ST28, ST29, ST30, ST31>
Queryable<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23,
ST24, ST25, ST26, ST27, ST28, ST29, ST30, ST31), __DB> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)
where __DB: Backend,
Self: FromStaticSqlRow<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9,
ST10, ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21,
ST22, ST23, ST24, ST25, ST26, ST27, ST28, ST29, ST30, ST31), __DB> {
type Row = Self;
fn build(row: Self::Row) -> deserialize::Result<Self> { Ok(row) }
}
impl<__T, ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24,
ST25, ST26, ST27, ST28, ST29, ST30, ST31, __DB>
FromStaticSqlRow<Nullable<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8,
ST9, ST10, ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20,
ST21, ST22, ST23, ST24, ST25, ST26, ST27, ST28, ST29, ST30, ST31)>, __DB>
for Option<__T> where __DB: Backend,
(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13,
ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24, ST25,
ST26, ST27, ST28, ST29, ST30, ST31): SqlType,
__T: FromSqlRow<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10,
ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22,
ST23, ST24, ST25, ST26, ST27, ST28, ST29, ST30, ST31), __DB> {
#[allow(non_snake_case, unused_variables, unused_mut)]
fn build_from_row<'a>(row: &impl Row<'a, __DB>)
-> deserialize::Result<Self> {
match <__T as
FromSqlRow<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9,
ST10, ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19,
ST20, ST21, ST22, ST23, ST24, ST25, ST26, ST27, ST28, ST29,
ST30, ST31), __DB>>::build_from_row(row) {
Ok(v) => Ok(Some(v)),
Err(e) if e.is::<crate::result::UnexpectedNullError>() =>
Ok(None),
Err(e) => Err(e),
}
}
}
impl<__T, __DB, ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23,
ST24, ST25, ST26, ST27, ST28, ST29, ST30, ST31>
Queryable<Nullable<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10,
ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22,
ST23, ST24, ST25, ST26, ST27, ST28, ST29, ST30, ST31)>, __DB> for
Option<__T> where __DB: Backend,
Self: FromStaticSqlRow<Nullable<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7,
ST8, ST9, ST10, ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19,
ST20, ST21, ST22, ST23, ST24, ST25, ST26, ST27, ST28, ST29, ST30, ST31)>,
__DB>,
(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13,
ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24, ST25,
ST26, ST27, ST28, ST29, ST30, ST31): SqlType {
type Row = Self;
fn build(row: Self::Row) -> deserialize::Result<Self> { Ok(row) }
}
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31>
TupleSize for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)
where T: TupleSize, T1: TupleSize, T2: TupleSize, T3: TupleSize,
T4: TupleSize, T5: TupleSize, T6: TupleSize, T7: TupleSize, T8: TupleSize,
T9: TupleSize, T10: TupleSize, T11: TupleSize, T12: TupleSize,
T13: TupleSize, T14: TupleSize, T15: TupleSize, T16: TupleSize,
T17: TupleSize, T18: TupleSize, T19: TupleSize, T20: TupleSize,
T21: TupleSize, T22: TupleSize, T23: TupleSize, T24: TupleSize,
T25: TupleSize, T26: TupleSize, T27: TupleSize, T28: TupleSize,
T29: TupleSize, T30: TupleSize, T31: TupleSize {
const SIZE: usize =
T::SIZE + T1::SIZE + T2::SIZE + T3::SIZE + T4::SIZE + T5::SIZE +
T6::SIZE + T7::SIZE + T8::SIZE + T9::SIZE + T10::SIZE +
T11::SIZE + T12::SIZE + T13::SIZE + T14::SIZE + T15::SIZE +
T16::SIZE + T17::SIZE + T18::SIZE + T19::SIZE + T20::SIZE +
T21::SIZE + T22::SIZE + T23::SIZE + T24::SIZE + T25::SIZE +
T26::SIZE + T27::SIZE + T28::SIZE + T29::SIZE + T30::SIZE +
T31::SIZE + 0;
}
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31>
TupleSize for
Nullable<(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
T30, T31)> where T: TupleSize, T1: TupleSize, T2: TupleSize,
T3: TupleSize, T4: TupleSize, T5: TupleSize, T6: TupleSize, T7: TupleSize,
T8: TupleSize, T9: TupleSize, T10: TupleSize, T11: TupleSize,
T12: TupleSize, T13: TupleSize, T14: TupleSize, T15: TupleSize,
T16: TupleSize, T17: TupleSize, T18: TupleSize, T19: TupleSize,
T20: TupleSize, T21: TupleSize, T22: TupleSize, T23: TupleSize,
T24: TupleSize, T25: TupleSize, T26: TupleSize, T27: TupleSize,
T28: TupleSize, T29: TupleSize, T30: TupleSize, T31: TupleSize,
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
T31): SqlType {
const SIZE: usize =
T::SIZE + T1::SIZE + T2::SIZE + T3::SIZE + T4::SIZE + T5::SIZE +
T6::SIZE + T7::SIZE + T8::SIZE + T9::SIZE + T10::SIZE +
T11::SIZE + T12::SIZE + T13::SIZE + T14::SIZE + T15::SIZE +
T16::SIZE + T17::SIZE + T18::SIZE + T19::SIZE + T20::SIZE +
T21::SIZE + T22::SIZE + T23::SIZE + T24::SIZE + T25::SIZE +
T26::SIZE + T27::SIZE + T28::SIZE + T29::SIZE + T30::SIZE +
T31::SIZE + 0;
}
#[doc(hidden)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31,
__DB>
QueryMetadata<(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
T29, T30, T31)> for __DB where __DB: Backend, __DB: QueryMetadata<T>,
__DB: QueryMetadata<T1>, __DB: QueryMetadata<T2>, __DB: QueryMetadata<T3>,
__DB: QueryMetadata<T4>, __DB: QueryMetadata<T5>, __DB: QueryMetadata<T6>,
__DB: QueryMetadata<T7>, __DB: QueryMetadata<T8>, __DB: QueryMetadata<T9>,
__DB: QueryMetadata<T10>, __DB: QueryMetadata<T11>,
__DB: QueryMetadata<T12>, __DB: QueryMetadata<T13>,
__DB: QueryMetadata<T14>, __DB: QueryMetadata<T15>,
__DB: QueryMetadata<T16>, __DB: QueryMetadata<T17>,
__DB: QueryMetadata<T18>, __DB: QueryMetadata<T19>,
__DB: QueryMetadata<T20>, __DB: QueryMetadata<T21>,
__DB: QueryMetadata<T22>, __DB: QueryMetadata<T23>,
__DB: QueryMetadata<T24>, __DB: QueryMetadata<T25>,
__DB: QueryMetadata<T26>, __DB: QueryMetadata<T27>,
__DB: QueryMetadata<T28>, __DB: QueryMetadata<T29>,
__DB: QueryMetadata<T30>, __DB: QueryMetadata<T31> {
fn row_metadata(lookup: &mut Self::MetadataLookup,
row: &mut Vec<Option<__DB::TypeMetadata>>) {
<__DB as QueryMetadata<T>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T1>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T2>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T3>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T4>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T5>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T6>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T7>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T8>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T9>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T10>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T11>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T12>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T13>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T14>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T15>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T16>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T17>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T18>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T19>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T20>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T21>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T22>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T23>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T24>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T25>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T26>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T27>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T28>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T29>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T30>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T31>>::row_metadata(lookup, row);
}
}
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31,
__DB>
QueryMetadata<Nullable<(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
T27, T28, T29, T30, T31)>> for __DB where __DB: Backend,
__DB: QueryMetadata<T>, __DB: QueryMetadata<T1>, __DB: QueryMetadata<T2>,
__DB: QueryMetadata<T3>, __DB: QueryMetadata<T4>, __DB: QueryMetadata<T5>,
__DB: QueryMetadata<T6>, __DB: QueryMetadata<T7>, __DB: QueryMetadata<T8>,
__DB: QueryMetadata<T9>, __DB: QueryMetadata<T10>,
__DB: QueryMetadata<T11>, __DB: QueryMetadata<T12>,
__DB: QueryMetadata<T13>, __DB: QueryMetadata<T14>,
__DB: QueryMetadata<T15>, __DB: QueryMetadata<T16>,
__DB: QueryMetadata<T17>, __DB: QueryMetadata<T18>,
__DB: QueryMetadata<T19>, __DB: QueryMetadata<T20>,
__DB: QueryMetadata<T21>, __DB: QueryMetadata<T22>,
__DB: QueryMetadata<T23>, __DB: QueryMetadata<T24>,
__DB: QueryMetadata<T25>, __DB: QueryMetadata<T26>,
__DB: QueryMetadata<T27>, __DB: QueryMetadata<T28>,
__DB: QueryMetadata<T29>, __DB: QueryMetadata<T30>,
__DB: QueryMetadata<T31> {
fn row_metadata(lookup: &mut Self::MetadataLookup,
row: &mut Vec<Option<__DB::TypeMetadata>>) {
<__DB as QueryMetadata<T>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T1>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T2>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T3>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T4>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T5>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T6>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T7>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T8>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T9>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T10>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T11>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T12>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T13>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T14>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T15>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T16>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T17>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T18>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T19>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T20>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T21>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T22>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T23>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T24>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T25>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T26>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T27>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T28>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T29>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T30>>::row_metadata(lookup, row);
<__DB as QueryMetadata<T31>>::row_metadata(lookup, row);
}
}
#[doc(hidden)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31,
__DB> deserialize::QueryableByName<__DB> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)
where __DB: Backend, T: deserialize::QueryableByName<__DB>,
T1: deserialize::QueryableByName<__DB>,
T2: deserialize::QueryableByName<__DB>,
T3: deserialize::QueryableByName<__DB>,
T4: deserialize::QueryableByName<__DB>,
T5: deserialize::QueryableByName<__DB>,
T6: deserialize::QueryableByName<__DB>,
T7: deserialize::QueryableByName<__DB>,
T8: deserialize::QueryableByName<__DB>,
T9: deserialize::QueryableByName<__DB>,
T10: deserialize::QueryableByName<__DB>,
T11: deserialize::QueryableByName<__DB>,
T12: deserialize::QueryableByName<__DB>,
T13: deserialize::QueryableByName<__DB>,
T14: deserialize::QueryableByName<__DB>,
T15: deserialize::QueryableByName<__DB>,
T16: deserialize::QueryableByName<__DB>,
T17: deserialize::QueryableByName<__DB>,
T18: deserialize::QueryableByName<__DB>,
T19: deserialize::QueryableByName<__DB>,
T20: deserialize::QueryableByName<__DB>,
T21: deserialize::QueryableByName<__DB>,
T22: deserialize::QueryableByName<__DB>,
T23: deserialize::QueryableByName<__DB>,
T24: deserialize::QueryableByName<__DB>,
T25: deserialize::QueryableByName<__DB>,
T26: deserialize::QueryableByName<__DB>,
T27: deserialize::QueryableByName<__DB>,
T28: deserialize::QueryableByName<__DB>,
T29: deserialize::QueryableByName<__DB>,
T30: deserialize::QueryableByName<__DB>,
T31: deserialize::QueryableByName<__DB> {
fn build<'a>(row: &impl NamedRow<'a, __DB>) -> deserialize::Result<Self> {
Ok((<T as deserialize::QueryableByName<__DB>>::build(row)?,
<T1 as deserialize::QueryableByName<__DB>>::build(row)?,
<T2 as deserialize::QueryableByName<__DB>>::build(row)?,
<T3 as deserialize::QueryableByName<__DB>>::build(row)?,
<T4 as deserialize::QueryableByName<__DB>>::build(row)?,
<T5 as deserialize::QueryableByName<__DB>>::build(row)?,
<T6 as deserialize::QueryableByName<__DB>>::build(row)?,
<T7 as deserialize::QueryableByName<__DB>>::build(row)?,
<T8 as deserialize::QueryableByName<__DB>>::build(row)?,
<T9 as deserialize::QueryableByName<__DB>>::build(row)?,
<T10 as deserialize::QueryableByName<__DB>>::build(row)?,
<T11 as deserialize::QueryableByName<__DB>>::build(row)?,
<T12 as deserialize::QueryableByName<__DB>>::build(row)?,
<T13 as deserialize::QueryableByName<__DB>>::build(row)?,
<T14 as deserialize::QueryableByName<__DB>>::build(row)?,
<T15 as deserialize::QueryableByName<__DB>>::build(row)?,
<T16 as deserialize::QueryableByName<__DB>>::build(row)?,
<T17 as deserialize::QueryableByName<__DB>>::build(row)?,
<T18 as deserialize::QueryableByName<__DB>>::build(row)?,
<T19 as deserialize::QueryableByName<__DB>>::build(row)?,
<T20 as deserialize::QueryableByName<__DB>>::build(row)?,
<T21 as deserialize::QueryableByName<__DB>>::build(row)?,
<T22 as deserialize::QueryableByName<__DB>>::build(row)?,
<T23 as deserialize::QueryableByName<__DB>>::build(row)?,
<T24 as deserialize::QueryableByName<__DB>>::build(row)?,
<T25 as deserialize::QueryableByName<__DB>>::build(row)?,
<T26 as deserialize::QueryableByName<__DB>>::build(row)?,
<T27 as deserialize::QueryableByName<__DB>>::build(row)?,
<T28 as deserialize::QueryableByName<__DB>>::build(row)?,
<T29 as deserialize::QueryableByName<__DB>>::build(row)?,
<T30 as deserialize::QueryableByName<__DB>>::build(row)?,
<T31 as deserialize::QueryableByName<__DB>>::build(row)?))
}
}
#[diagnostic::do_not_recommend]
impl<__T, ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24,
ST25, ST26, ST27, ST28, ST29, ST30, ST31, __DB> CompatibleType<__T, __DB>
for
(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13,
ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24, ST25,
ST26, ST27, ST28, ST29, ST30, ST31) where __DB: Backend,
__T: FromSqlRow<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10,
ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22,
ST23, ST24, ST25, ST26, ST27, ST28, ST29, ST30, ST31), __DB> {
type SqlType = Self;
}
impl<__T, ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24,
ST25, ST26, ST27, ST28, ST29, ST30, ST31, __DB>
CompatibleType<Option<__T>, __DB> for
Nullable<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23,
ST24, ST25, ST26, ST27, ST28, ST29, ST30, ST31)> where __DB: Backend,
(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13,
ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24, ST25,
ST26, ST27, ST28, ST29, ST30, ST31): CompatibleType<__T, __DB> {
type SqlType =
Nullable<<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10,
ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21,
ST22, ST23, ST24, ST25, ST26, ST27, ST28, ST29, ST30, ST31) as
CompatibleType<__T, __DB>>::SqlType>;
}
impl<ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13,
ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24, ST25,
ST26, ST27, ST28, ST29, ST30, ST31> SqlTypeOrSelectable for
(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13,
ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24, ST25,
ST26, ST27, ST28, ST29, ST30, ST31) where ST: SqlTypeOrSelectable,
ST1: SqlTypeOrSelectable, ST2: SqlTypeOrSelectable,
ST3: SqlTypeOrSelectable, ST4: SqlTypeOrSelectable,
ST5: SqlTypeOrSelectable, ST6: SqlTypeOrSelectable,
ST7: SqlTypeOrSelectable, ST8: SqlTypeOrSelectable,
ST9: SqlTypeOrSelectable, ST10: SqlTypeOrSelectable,
ST11: SqlTypeOrSelectable, ST12: SqlTypeOrSelectable,
ST13: SqlTypeOrSelectable, ST14: SqlTypeOrSelectable,
ST15: SqlTypeOrSelectable, ST16: SqlTypeOrSelectable,
ST17: SqlTypeOrSelectable, ST18: SqlTypeOrSelectable,
ST19: SqlTypeOrSelectable, ST20: SqlTypeOrSelectable,
ST21: SqlTypeOrSelectable, ST22: SqlTypeOrSelectable,
ST23: SqlTypeOrSelectable, ST24: SqlTypeOrSelectable,
ST25: SqlTypeOrSelectable, ST26: SqlTypeOrSelectable,
ST27: SqlTypeOrSelectable, ST28: SqlTypeOrSelectable,
ST29: SqlTypeOrSelectable, ST30: SqlTypeOrSelectable,
ST31: SqlTypeOrSelectable {}
impl<ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13,
ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24, ST25,
ST26, ST27, ST28, ST29, ST30, ST31> SqlTypeOrSelectable for
Nullable<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23,
ST24, ST25, ST26, ST27, ST28, ST29, ST30, ST31)> where
(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13,
ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24, ST25,
ST26, ST27, ST28, ST29, ST30, ST31): SqlTypeOrSelectable {}crate::for_each_tuple!(tuple_impls);