1mod belongs_to;
405
406use core::hash::Hash;
407
408use crate::query_source::Table;
409
410pub use self::belongs_to::{BelongsTo, GroupedBy, TryGroupedByError};
411
412#[doc(inline)]
413pub use diesel_derives::Associations;
414
415pub trait HasTable {
420 type Table: Table;
422
423 fn table() -> Self::Table;
425}
426
427impl<T: HasTable> HasTable for &T {
428 type Table = T::Table;
429
430 fn table() -> Self::Table {
431 T::table()
432 }
433}
434
435impl<T: HasTable> HasTable for Option<T> {
436 type Table = T::Table;
437
438 fn table() -> Self::Table {
439 T::table()
440 }
441}
442
443impl<T: HasTable> HasTable for alloc::boxed::Box<T> {
444 type Table = T::Table;
445
446 fn table() -> Self::Table {
447 T::table()
448 }
449}
450
451impl<T: HasTable> HasTable for alloc::rc::Rc<T> {
452 type Table = T::Table;
453
454 fn table() -> Self::Table {
455 T::table()
456 }
457}
458
459impl<T: HasTable> HasTable for alloc::sync::Arc<T> {
460 type Table = T::Table;
461
462 fn table() -> Self::Table {
463 T::table()
464 }
465}
466
467impl<T> HasTable for (T,)
479where
480 T: HasTable,
481{
482 type Table = T::Table;
483
484 fn table() -> Self::Table {
485 T::table()
486 }
487}
488
489macro_rules! has_table_tuples {
490 ($(
491 $Tuple:tt {
492 $(($idx:tt) -> $T:ident, $ST:ident, $TT:ident,)*
493 }
494 )+) => {
495 $(
496 impl<_T, $($T),*> HasTable for (_T, $($T),*)
497 where
498 _T: HasTable,
499 $($T: HasTable<Table = _T::Table>,)*
500 {
501 type Table = _T::Table;
502
503 fn table() -> Self::Table {
504 _T::table()
505 }
506 }
507 )+
508 };
509}
510
511impl<_T, T> HasTable for (_T, T) where _T: HasTable,
T: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, T, T1> HasTable for (_T, T, T1) where _T: HasTable,
T: HasTable<Table = _T::Table>, T1: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, T, T1, T2> HasTable for (_T, T, T1, T2) where _T: HasTable,
T: HasTable<Table = _T::Table>, T1: HasTable<Table = _T::Table>,
T2: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, T, T1, T2, T3> HasTable for (_T, T, T1, T2, T3) where _T: HasTable,
T: HasTable<Table = _T::Table>, T1: HasTable<Table = _T::Table>,
T2: HasTable<Table = _T::Table>, T3: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, T, T1, T2, T3, T4> HasTable for (_T, T, T1, T2, T3, T4) where
_T: HasTable, T: HasTable<Table = _T::Table>,
T1: HasTable<Table = _T::Table>, T2: HasTable<Table = _T::Table>,
T3: HasTable<Table = _T::Table>, T4: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, T, T1, T2, T3, T4, T5> HasTable for (_T, T, T1, T2, T3, T4, T5) where
_T: HasTable, T: HasTable<Table = _T::Table>,
T1: HasTable<Table = _T::Table>, T2: HasTable<Table = _T::Table>,
T3: HasTable<Table = _T::Table>, T4: HasTable<Table = _T::Table>,
T5: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, T, T1, T2, T3, T4, T5, T6> HasTable for
(_T, T, T1, T2, T3, T4, T5, T6) where _T: HasTable,
T: HasTable<Table = _T::Table>, T1: HasTable<Table = _T::Table>,
T2: HasTable<Table = _T::Table>, T3: HasTable<Table = _T::Table>,
T4: HasTable<Table = _T::Table>, T5: HasTable<Table = _T::Table>,
T6: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, T, T1, T2, T3, T4, T5, T6, T7> HasTable for
(_T, T, T1, T2, T3, T4, T5, T6, T7) where _T: HasTable,
T: HasTable<Table = _T::Table>, T1: HasTable<Table = _T::Table>,
T2: HasTable<Table = _T::Table>, T3: HasTable<Table = _T::Table>,
T4: HasTable<Table = _T::Table>, T5: HasTable<Table = _T::Table>,
T6: HasTable<Table = _T::Table>, T7: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, T, T1, T2, T3, T4, T5, T6, T7, T8> HasTable for
(_T, T, T1, T2, T3, T4, T5, T6, T7, T8) where _T: HasTable,
T: HasTable<Table = _T::Table>, T1: HasTable<Table = _T::Table>,
T2: HasTable<Table = _T::Table>, T3: HasTable<Table = _T::Table>,
T4: HasTable<Table = _T::Table>, T5: HasTable<Table = _T::Table>,
T6: HasTable<Table = _T::Table>, T7: HasTable<Table = _T::Table>,
T8: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9> HasTable for
(_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9) where _T: HasTable,
T: HasTable<Table = _T::Table>, T1: HasTable<Table = _T::Table>,
T2: HasTable<Table = _T::Table>, T3: HasTable<Table = _T::Table>,
T4: HasTable<Table = _T::Table>, T5: HasTable<Table = _T::Table>,
T6: HasTable<Table = _T::Table>, T7: HasTable<Table = _T::Table>,
T8: HasTable<Table = _T::Table>, T9: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> HasTable for
(_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) where _T: HasTable,
T: HasTable<Table = _T::Table>, T1: HasTable<Table = _T::Table>,
T2: HasTable<Table = _T::Table>, T3: HasTable<Table = _T::Table>,
T4: HasTable<Table = _T::Table>, T5: HasTable<Table = _T::Table>,
T6: HasTable<Table = _T::Table>, T7: HasTable<Table = _T::Table>,
T8: HasTable<Table = _T::Table>, T9: HasTable<Table = _T::Table>,
T10: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> HasTable for
(_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) where _T: HasTable,
T: HasTable<Table = _T::Table>, T1: HasTable<Table = _T::Table>,
T2: HasTable<Table = _T::Table>, T3: HasTable<Table = _T::Table>,
T4: HasTable<Table = _T::Table>, T5: HasTable<Table = _T::Table>,
T6: HasTable<Table = _T::Table>, T7: HasTable<Table = _T::Table>,
T8: HasTable<Table = _T::Table>, T9: HasTable<Table = _T::Table>,
T10: HasTable<Table = _T::Table>, T11: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> HasTable for
(_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) where
_T: HasTable, T: HasTable<Table = _T::Table>,
T1: HasTable<Table = _T::Table>, T2: HasTable<Table = _T::Table>,
T3: HasTable<Table = _T::Table>, T4: HasTable<Table = _T::Table>,
T5: HasTable<Table = _T::Table>, T6: HasTable<Table = _T::Table>,
T7: HasTable<Table = _T::Table>, T8: HasTable<Table = _T::Table>,
T9: HasTable<Table = _T::Table>, T10: HasTable<Table = _T::Table>,
T11: HasTable<Table = _T::Table>, T12: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> HasTable
for (_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) where
_T: HasTable, T: HasTable<Table = _T::Table>,
T1: HasTable<Table = _T::Table>, T2: HasTable<Table = _T::Table>,
T3: HasTable<Table = _T::Table>, T4: HasTable<Table = _T::Table>,
T5: HasTable<Table = _T::Table>, T6: HasTable<Table = _T::Table>,
T7: HasTable<Table = _T::Table>, T8: HasTable<Table = _T::Table>,
T9: HasTable<Table = _T::Table>, T10: HasTable<Table = _T::Table>,
T11: HasTable<Table = _T::Table>, T12: HasTable<Table = _T::Table>,
T13: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>
HasTable for
(_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) where
_T: HasTable, T: HasTable<Table = _T::Table>,
T1: HasTable<Table = _T::Table>, T2: HasTable<Table = _T::Table>,
T3: HasTable<Table = _T::Table>, T4: HasTable<Table = _T::Table>,
T5: HasTable<Table = _T::Table>, T6: HasTable<Table = _T::Table>,
T7: HasTable<Table = _T::Table>, T8: HasTable<Table = _T::Table>,
T9: HasTable<Table = _T::Table>, T10: HasTable<Table = _T::Table>,
T11: HasTable<Table = _T::Table>, T12: HasTable<Table = _T::Table>,
T13: HasTable<Table = _T::Table>, T14: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>
HasTable for
(_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
where _T: HasTable, T: HasTable<Table = _T::Table>,
T1: HasTable<Table = _T::Table>, T2: HasTable<Table = _T::Table>,
T3: HasTable<Table = _T::Table>, T4: HasTable<Table = _T::Table>,
T5: HasTable<Table = _T::Table>, T6: HasTable<Table = _T::Table>,
T7: HasTable<Table = _T::Table>, T8: HasTable<Table = _T::Table>,
T9: HasTable<Table = _T::Table>, T10: HasTable<Table = _T::Table>,
T11: HasTable<Table = _T::Table>, T12: HasTable<Table = _T::Table>,
T13: HasTable<Table = _T::Table>, T14: HasTable<Table = _T::Table>,
T15: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16> HasTable for
(_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16) where _T: HasTable, T: HasTable<Table = _T::Table>,
T1: HasTable<Table = _T::Table>, T2: HasTable<Table = _T::Table>,
T3: HasTable<Table = _T::Table>, T4: HasTable<Table = _T::Table>,
T5: HasTable<Table = _T::Table>, T6: HasTable<Table = _T::Table>,
T7: HasTable<Table = _T::Table>, T8: HasTable<Table = _T::Table>,
T9: HasTable<Table = _T::Table>, T10: HasTable<Table = _T::Table>,
T11: HasTable<Table = _T::Table>, T12: HasTable<Table = _T::Table>,
T13: HasTable<Table = _T::Table>, T14: HasTable<Table = _T::Table>,
T15: HasTable<Table = _T::Table>, T16: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17> HasTable for
(_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17) where _T: HasTable, T: HasTable<Table = _T::Table>,
T1: HasTable<Table = _T::Table>, T2: HasTable<Table = _T::Table>,
T3: HasTable<Table = _T::Table>, T4: HasTable<Table = _T::Table>,
T5: HasTable<Table = _T::Table>, T6: HasTable<Table = _T::Table>,
T7: HasTable<Table = _T::Table>, T8: HasTable<Table = _T::Table>,
T9: HasTable<Table = _T::Table>, T10: HasTable<Table = _T::Table>,
T11: HasTable<Table = _T::Table>, T12: HasTable<Table = _T::Table>,
T13: HasTable<Table = _T::Table>, T14: HasTable<Table = _T::Table>,
T15: HasTable<Table = _T::Table>, T16: HasTable<Table = _T::Table>,
T17: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18> HasTable for
(_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18) where _T: HasTable, T: HasTable<Table = _T::Table>,
T1: HasTable<Table = _T::Table>, T2: HasTable<Table = _T::Table>,
T3: HasTable<Table = _T::Table>, T4: HasTable<Table = _T::Table>,
T5: HasTable<Table = _T::Table>, T6: HasTable<Table = _T::Table>,
T7: HasTable<Table = _T::Table>, T8: HasTable<Table = _T::Table>,
T9: HasTable<Table = _T::Table>, T10: HasTable<Table = _T::Table>,
T11: HasTable<Table = _T::Table>, T12: HasTable<Table = _T::Table>,
T13: HasTable<Table = _T::Table>, T14: HasTable<Table = _T::Table>,
T15: HasTable<Table = _T::Table>, T16: HasTable<Table = _T::Table>,
T17: HasTable<Table = _T::Table>, T18: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19> HasTable for
(_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19) where _T: HasTable, T: HasTable<Table = _T::Table>,
T1: HasTable<Table = _T::Table>, T2: HasTable<Table = _T::Table>,
T3: HasTable<Table = _T::Table>, T4: HasTable<Table = _T::Table>,
T5: HasTable<Table = _T::Table>, T6: HasTable<Table = _T::Table>,
T7: HasTable<Table = _T::Table>, T8: HasTable<Table = _T::Table>,
T9: HasTable<Table = _T::Table>, T10: HasTable<Table = _T::Table>,
T11: HasTable<Table = _T::Table>, T12: HasTable<Table = _T::Table>,
T13: HasTable<Table = _T::Table>, T14: HasTable<Table = _T::Table>,
T15: HasTable<Table = _T::Table>, T16: HasTable<Table = _T::Table>,
T17: HasTable<Table = _T::Table>, T18: HasTable<Table = _T::Table>,
T19: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20> HasTable for
(_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20) where _T: HasTable,
T: HasTable<Table = _T::Table>, T1: HasTable<Table = _T::Table>,
T2: HasTable<Table = _T::Table>, T3: HasTable<Table = _T::Table>,
T4: HasTable<Table = _T::Table>, T5: HasTable<Table = _T::Table>,
T6: HasTable<Table = _T::Table>, T7: HasTable<Table = _T::Table>,
T8: HasTable<Table = _T::Table>, T9: HasTable<Table = _T::Table>,
T10: HasTable<Table = _T::Table>, T11: HasTable<Table = _T::Table>,
T12: HasTable<Table = _T::Table>, T13: HasTable<Table = _T::Table>,
T14: HasTable<Table = _T::Table>, T15: HasTable<Table = _T::Table>,
T16: HasTable<Table = _T::Table>, T17: HasTable<Table = _T::Table>,
T18: HasTable<Table = _T::Table>, T19: HasTable<Table = _T::Table>,
T20: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20, T21> HasTable for
(_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20, T21) where _T: HasTable,
T: HasTable<Table = _T::Table>, T1: HasTable<Table = _T::Table>,
T2: HasTable<Table = _T::Table>, T3: HasTable<Table = _T::Table>,
T4: HasTable<Table = _T::Table>, T5: HasTable<Table = _T::Table>,
T6: HasTable<Table = _T::Table>, T7: HasTable<Table = _T::Table>,
T8: HasTable<Table = _T::Table>, T9: HasTable<Table = _T::Table>,
T10: HasTable<Table = _T::Table>, T11: HasTable<Table = _T::Table>,
T12: HasTable<Table = _T::Table>, T13: HasTable<Table = _T::Table>,
T14: HasTable<Table = _T::Table>, T15: HasTable<Table = _T::Table>,
T16: HasTable<Table = _T::Table>, T17: HasTable<Table = _T::Table>,
T18: HasTable<Table = _T::Table>, T19: HasTable<Table = _T::Table>,
T20: HasTable<Table = _T::Table>, T21: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20, T21, T22> HasTable for
(_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20, T21, T22) where _T: HasTable,
T: HasTable<Table = _T::Table>, T1: HasTable<Table = _T::Table>,
T2: HasTable<Table = _T::Table>, T3: HasTable<Table = _T::Table>,
T4: HasTable<Table = _T::Table>, T5: HasTable<Table = _T::Table>,
T6: HasTable<Table = _T::Table>, T7: HasTable<Table = _T::Table>,
T8: HasTable<Table = _T::Table>, T9: HasTable<Table = _T::Table>,
T10: HasTable<Table = _T::Table>, T11: HasTable<Table = _T::Table>,
T12: HasTable<Table = _T::Table>, T13: HasTable<Table = _T::Table>,
T14: HasTable<Table = _T::Table>, T15: HasTable<Table = _T::Table>,
T16: HasTable<Table = _T::Table>, T17: HasTable<Table = _T::Table>,
T18: HasTable<Table = _T::Table>, T19: HasTable<Table = _T::Table>,
T20: HasTable<Table = _T::Table>, T21: HasTable<Table = _T::Table>,
T22: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20, T21, T22, T23> HasTable for
(_T, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20, T21, T22, T23) where _T: HasTable,
T: HasTable<Table = _T::Table>, T1: HasTable<Table = _T::Table>,
T2: HasTable<Table = _T::Table>, T3: HasTable<Table = _T::Table>,
T4: HasTable<Table = _T::Table>, T5: HasTable<Table = _T::Table>,
T6: HasTable<Table = _T::Table>, T7: HasTable<Table = _T::Table>,
T8: HasTable<Table = _T::Table>, T9: HasTable<Table = _T::Table>,
T10: HasTable<Table = _T::Table>, T11: HasTable<Table = _T::Table>,
T12: HasTable<Table = _T::Table>, T13: HasTable<Table = _T::Table>,
T14: HasTable<Table = _T::Table>, T15: HasTable<Table = _T::Table>,
T16: HasTable<Table = _T::Table>, T17: HasTable<Table = _T::Table>,
T18: HasTable<Table = _T::Table>, T19: HasTable<Table = _T::Table>,
T20: HasTable<Table = _T::Table>, T21: HasTable<Table = _T::Table>,
T22: HasTable<Table = _T::Table>, T23: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, 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> HasTable for
(_T, 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) where _T: HasTable,
T: HasTable<Table = _T::Table>, T1: HasTable<Table = _T::Table>,
T2: HasTable<Table = _T::Table>, T3: HasTable<Table = _T::Table>,
T4: HasTable<Table = _T::Table>, T5: HasTable<Table = _T::Table>,
T6: HasTable<Table = _T::Table>, T7: HasTable<Table = _T::Table>,
T8: HasTable<Table = _T::Table>, T9: HasTable<Table = _T::Table>,
T10: HasTable<Table = _T::Table>, T11: HasTable<Table = _T::Table>,
T12: HasTable<Table = _T::Table>, T13: HasTable<Table = _T::Table>,
T14: HasTable<Table = _T::Table>, T15: HasTable<Table = _T::Table>,
T16: HasTable<Table = _T::Table>, T17: HasTable<Table = _T::Table>,
T18: HasTable<Table = _T::Table>, T19: HasTable<Table = _T::Table>,
T20: HasTable<Table = _T::Table>, T21: HasTable<Table = _T::Table>,
T22: HasTable<Table = _T::Table>, T23: HasTable<Table = _T::Table>,
T24: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, 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> HasTable for
(_T, 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) where _T: HasTable,
T: HasTable<Table = _T::Table>, T1: HasTable<Table = _T::Table>,
T2: HasTable<Table = _T::Table>, T3: HasTable<Table = _T::Table>,
T4: HasTable<Table = _T::Table>, T5: HasTable<Table = _T::Table>,
T6: HasTable<Table = _T::Table>, T7: HasTable<Table = _T::Table>,
T8: HasTable<Table = _T::Table>, T9: HasTable<Table = _T::Table>,
T10: HasTable<Table = _T::Table>, T11: HasTable<Table = _T::Table>,
T12: HasTable<Table = _T::Table>, T13: HasTable<Table = _T::Table>,
T14: HasTable<Table = _T::Table>, T15: HasTable<Table = _T::Table>,
T16: HasTable<Table = _T::Table>, T17: HasTable<Table = _T::Table>,
T18: HasTable<Table = _T::Table>, T19: HasTable<Table = _T::Table>,
T20: HasTable<Table = _T::Table>, T21: HasTable<Table = _T::Table>,
T22: HasTable<Table = _T::Table>, T23: HasTable<Table = _T::Table>,
T24: HasTable<Table = _T::Table>, T25: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, 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> HasTable for
(_T, 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) where _T: HasTable,
T: HasTable<Table = _T::Table>, T1: HasTable<Table = _T::Table>,
T2: HasTable<Table = _T::Table>, T3: HasTable<Table = _T::Table>,
T4: HasTable<Table = _T::Table>, T5: HasTable<Table = _T::Table>,
T6: HasTable<Table = _T::Table>, T7: HasTable<Table = _T::Table>,
T8: HasTable<Table = _T::Table>, T9: HasTable<Table = _T::Table>,
T10: HasTable<Table = _T::Table>, T11: HasTable<Table = _T::Table>,
T12: HasTable<Table = _T::Table>, T13: HasTable<Table = _T::Table>,
T14: HasTable<Table = _T::Table>, T15: HasTable<Table = _T::Table>,
T16: HasTable<Table = _T::Table>, T17: HasTable<Table = _T::Table>,
T18: HasTable<Table = _T::Table>, T19: HasTable<Table = _T::Table>,
T20: HasTable<Table = _T::Table>, T21: HasTable<Table = _T::Table>,
T22: HasTable<Table = _T::Table>, T23: HasTable<Table = _T::Table>,
T24: HasTable<Table = _T::Table>, T25: HasTable<Table = _T::Table>,
T26: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, 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> HasTable for
(_T, 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) where
_T: HasTable, T: HasTable<Table = _T::Table>,
T1: HasTable<Table = _T::Table>, T2: HasTable<Table = _T::Table>,
T3: HasTable<Table = _T::Table>, T4: HasTable<Table = _T::Table>,
T5: HasTable<Table = _T::Table>, T6: HasTable<Table = _T::Table>,
T7: HasTable<Table = _T::Table>, T8: HasTable<Table = _T::Table>,
T9: HasTable<Table = _T::Table>, T10: HasTable<Table = _T::Table>,
T11: HasTable<Table = _T::Table>, T12: HasTable<Table = _T::Table>,
T13: HasTable<Table = _T::Table>, T14: HasTable<Table = _T::Table>,
T15: HasTable<Table = _T::Table>, T16: HasTable<Table = _T::Table>,
T17: HasTable<Table = _T::Table>, T18: HasTable<Table = _T::Table>,
T19: HasTable<Table = _T::Table>, T20: HasTable<Table = _T::Table>,
T21: HasTable<Table = _T::Table>, T22: HasTable<Table = _T::Table>,
T23: HasTable<Table = _T::Table>, T24: HasTable<Table = _T::Table>,
T25: HasTable<Table = _T::Table>, T26: HasTable<Table = _T::Table>,
T27: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, 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> HasTable
for
(_T, 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) where
_T: HasTable, T: HasTable<Table = _T::Table>,
T1: HasTable<Table = _T::Table>, T2: HasTable<Table = _T::Table>,
T3: HasTable<Table = _T::Table>, T4: HasTable<Table = _T::Table>,
T5: HasTable<Table = _T::Table>, T6: HasTable<Table = _T::Table>,
T7: HasTable<Table = _T::Table>, T8: HasTable<Table = _T::Table>,
T9: HasTable<Table = _T::Table>, T10: HasTable<Table = _T::Table>,
T11: HasTable<Table = _T::Table>, T12: HasTable<Table = _T::Table>,
T13: HasTable<Table = _T::Table>, T14: HasTable<Table = _T::Table>,
T15: HasTable<Table = _T::Table>, T16: HasTable<Table = _T::Table>,
T17: HasTable<Table = _T::Table>, T18: HasTable<Table = _T::Table>,
T19: HasTable<Table = _T::Table>, T20: HasTable<Table = _T::Table>,
T21: HasTable<Table = _T::Table>, T22: HasTable<Table = _T::Table>,
T23: HasTable<Table = _T::Table>, T24: HasTable<Table = _T::Table>,
T25: HasTable<Table = _T::Table>, T26: HasTable<Table = _T::Table>,
T27: HasTable<Table = _T::Table>, T28: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, 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>
HasTable for
(_T, 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)
where _T: HasTable, T: HasTable<Table = _T::Table>,
T1: HasTable<Table = _T::Table>, T2: HasTable<Table = _T::Table>,
T3: HasTable<Table = _T::Table>, T4: HasTable<Table = _T::Table>,
T5: HasTable<Table = _T::Table>, T6: HasTable<Table = _T::Table>,
T7: HasTable<Table = _T::Table>, T8: HasTable<Table = _T::Table>,
T9: HasTable<Table = _T::Table>, T10: HasTable<Table = _T::Table>,
T11: HasTable<Table = _T::Table>, T12: HasTable<Table = _T::Table>,
T13: HasTable<Table = _T::Table>, T14: HasTable<Table = _T::Table>,
T15: HasTable<Table = _T::Table>, T16: HasTable<Table = _T::Table>,
T17: HasTable<Table = _T::Table>, T18: HasTable<Table = _T::Table>,
T19: HasTable<Table = _T::Table>, T20: HasTable<Table = _T::Table>,
T21: HasTable<Table = _T::Table>, T22: HasTable<Table = _T::Table>,
T23: HasTable<Table = _T::Table>, T24: HasTable<Table = _T::Table>,
T25: HasTable<Table = _T::Table>, T26: HasTable<Table = _T::Table>,
T27: HasTable<Table = _T::Table>, T28: HasTable<Table = _T::Table>,
T29: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, 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>
HasTable for
(_T, 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)
where _T: HasTable, T: HasTable<Table = _T::Table>,
T1: HasTable<Table = _T::Table>, T2: HasTable<Table = _T::Table>,
T3: HasTable<Table = _T::Table>, T4: HasTable<Table = _T::Table>,
T5: HasTable<Table = _T::Table>, T6: HasTable<Table = _T::Table>,
T7: HasTable<Table = _T::Table>, T8: HasTable<Table = _T::Table>,
T9: HasTable<Table = _T::Table>, T10: HasTable<Table = _T::Table>,
T11: HasTable<Table = _T::Table>, T12: HasTable<Table = _T::Table>,
T13: HasTable<Table = _T::Table>, T14: HasTable<Table = _T::Table>,
T15: HasTable<Table = _T::Table>, T16: HasTable<Table = _T::Table>,
T17: HasTable<Table = _T::Table>, T18: HasTable<Table = _T::Table>,
T19: HasTable<Table = _T::Table>, T20: HasTable<Table = _T::Table>,
T21: HasTable<Table = _T::Table>, T22: HasTable<Table = _T::Table>,
T23: HasTable<Table = _T::Table>, T24: HasTable<Table = _T::Table>,
T25: HasTable<Table = _T::Table>, T26: HasTable<Table = _T::Table>,
T27: HasTable<Table = _T::Table>, T28: HasTable<Table = _T::Table>,
T29: HasTable<Table = _T::Table>, T30: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}
impl<_T, 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> HasTable for
(_T, 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: HasTable, T: HasTable<Table = _T::Table>,
T1: HasTable<Table = _T::Table>, T2: HasTable<Table = _T::Table>,
T3: HasTable<Table = _T::Table>, T4: HasTable<Table = _T::Table>,
T5: HasTable<Table = _T::Table>, T6: HasTable<Table = _T::Table>,
T7: HasTable<Table = _T::Table>, T8: HasTable<Table = _T::Table>,
T9: HasTable<Table = _T::Table>, T10: HasTable<Table = _T::Table>,
T11: HasTable<Table = _T::Table>, T12: HasTable<Table = _T::Table>,
T13: HasTable<Table = _T::Table>, T14: HasTable<Table = _T::Table>,
T15: HasTable<Table = _T::Table>, T16: HasTable<Table = _T::Table>,
T17: HasTable<Table = _T::Table>, T18: HasTable<Table = _T::Table>,
T19: HasTable<Table = _T::Table>, T20: HasTable<Table = _T::Table>,
T21: HasTable<Table = _T::Table>, T22: HasTable<Table = _T::Table>,
T23: HasTable<Table = _T::Table>, T24: HasTable<Table = _T::Table>,
T25: HasTable<Table = _T::Table>, T26: HasTable<Table = _T::Table>,
T27: HasTable<Table = _T::Table>, T28: HasTable<Table = _T::Table>,
T29: HasTable<Table = _T::Table>, T30: HasTable<Table = _T::Table>,
T31: HasTable<Table = _T::Table> {
type Table = _T::Table;
fn table() -> Self::Table { _T::table() }
}crate::for_each_tuple!(has_table_tuples);
512
513pub trait Identifiable: HasTable {
523 type Id: Hash + Eq;
529
530 fn id(self) -> Self::Id;
541}
542
543#[doc(inline)]
544pub use diesel_derives::Identifiable;