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