1mod belongs_to;
295
296use core::hash::Hash;
297
298use crate::query_source::Table;
299
300pub use self::belongs_to::{BelongsTo, GroupedBy, TryGroupedByError};
301
302#[doc(inline)]
303pub use diesel_derives::Associations;
304
305pub trait HasTable {
310 type Table: Table;
312
313 fn table() -> Self::Table;
315}
316
317impl<T: HasTable> HasTable for &T {
318 type Table = T::Table;
319
320 fn table() -> Self::Table {
321 T::table()
322 }
323}
324
325impl<T: HasTable> HasTable for Option<T> {
326 type Table = T::Table;
327
328 fn table() -> Self::Table {
329 T::table()
330 }
331}
332
333impl<T: HasTable> HasTable for alloc::boxed::Box<T> {
334 type Table = T::Table;
335
336 fn table() -> Self::Table {
337 T::table()
338 }
339}
340
341impl<T: HasTable> HasTable for alloc::rc::Rc<T> {
342 type Table = T::Table;
343
344 fn table() -> Self::Table {
345 T::table()
346 }
347}
348
349impl<T: HasTable> HasTable for alloc::sync::Arc<T> {
350 type Table = T::Table;
351
352 fn table() -> Self::Table {
353 T::table()
354 }
355}
356
357impl<T> HasTable for (T,)
369where
370 T: HasTable,
371{
372 type Table = T::Table;
373
374 fn table() -> Self::Table {
375 T::table()
376 }
377}
378
379macro_rules! has_table_tuples {
380 ($(
381 $Tuple:tt {
382 $(($idx:tt) -> $T:ident, $ST:ident, $TT:ident,)*
383 }
384 )+) => {
385 $(
386 impl<_T, $($T),*> HasTable for (_T, $($T),*)
387 where
388 _T: HasTable,
389 $($T: HasTable<Table = _T::Table>,)*
390 {
391 type Table = _T::Table;
392
393 fn table() -> Self::Table {
394 _T::table()
395 }
396 }
397 )+
398 };
399}
400
401impl<_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);
402
403pub trait Identifiable: HasTable {
413 type Id: Hash + Eq;
419
420 fn id(self) -> Self::Id;
431}
432
433#[doc(inline)]
434pub use diesel_derives::Identifiable;