1mod belongs_to;
310
311use core::hash::Hash;
312
313use crate::query_source::Table;
314
315pub use self::belongs_to::{BelongsTo, GroupedBy, TryGroupedByError};
316
317#[doc(inline)]
318pub use diesel_derives::Associations;
319
320pub trait HasTable {
325 type Table: Table;
327
328 fn table() -> Self::Table;
330}
331
332impl<T: HasTable> HasTable for &T {
333 type Table = T::Table;
334
335 fn table() -> Self::Table {
336 T::table()
337 }
338}
339
340impl<T: HasTable> HasTable for Option<T> {
341 type Table = T::Table;
342
343 fn table() -> Self::Table {
344 T::table()
345 }
346}
347
348impl<T: HasTable> HasTable for alloc::boxed::Box<T> {
349 type Table = T::Table;
350
351 fn table() -> Self::Table {
352 T::table()
353 }
354}
355
356impl<T: HasTable> HasTable for alloc::rc::Rc<T> {
357 type Table = T::Table;
358
359 fn table() -> Self::Table {
360 T::table()
361 }
362}
363
364impl<T: HasTable> HasTable for alloc::sync::Arc<T> {
365 type Table = T::Table;
366
367 fn table() -> Self::Table {
368 T::table()
369 }
370}
371
372impl<T> HasTable for (T,)
384where
385 T: HasTable,
386{
387 type Table = T::Table;
388
389 fn table() -> Self::Table {
390 T::table()
391 }
392}
393
394macro_rules! has_table_tuples {
395 ($(
396 $Tuple:tt {
397 $(($idx:tt) -> $T:ident, $ST:ident, $TT:ident,)*
398 }
399 )+) => {
400 $(
401 impl<_T, $($T),*> HasTable for (_T, $($T),*)
402 where
403 _T: HasTable,
404 $($T: HasTable<Table = _T::Table>,)*
405 {
406 type Table = _T::Table;
407
408 fn table() -> Self::Table {
409 _T::table()
410 }
411 }
412 )+
413 };
414}
415
416impl<_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);
417
418pub trait Identifiable: HasTable {
428 type Id: Hash + Eq;
434
435 fn id(self) -> Self::Id;
446}
447
448#[doc(inline)]
449pub use diesel_derives::Identifiable;