rocket_db_pools::diesel::prelude

Trait BelongingToDsl

Source
pub trait BelongingToDsl<T> {
    type Output;

    // Required method
    fn belonging_to(other: T) -> Self::Output;
}
Expand description

Constructs a query that finds record(s) based on directional association with other record(s).

§Example

let sean = users.filter(name.eq("Sean")).first::<User>(connection)?;
let tess = users.filter(name.eq("Tess")).first::<User>(connection)?;

let seans_posts = Post::belonging_to(&sean)
    .select(title)
    .load::<String>(connection)?;
assert_eq!(vec!["My first post", "About Rust"], seans_posts);

// A vec or slice can be passed as well
let more_posts = Post::belonging_to(&vec![sean, tess])
    .select(title)
    .load::<String>(connection)?;
assert_eq!(vec!["My first post", "About Rust", "My first post too"], more_posts);

Required Associated Types§

Source

type Output

The query returned by belonging_to

Required Methods§

Source

fn belonging_to(other: T) -> Self::Output

Get the record(s) belonging to record(s) other

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<'a, Parent, Child> BelongingToDsl<&'a [Parent]> for Child

Source§

type Output = <<Child as HasTable>::Table as FilterDsl<Grouped<In<<Child as BelongsTo<Parent>>::ForeignKeyColumn, <Vec<<&'a Parent as Identifiable>::Id> as AsInExpression<<<Child as BelongsTo<Parent>>::ForeignKeyColumn as Expression>::SqlType>>::InExpression>>>>::Output

Source§

impl<'a, Parent, Child> BelongingToDsl<&'a Vec<Parent>> for Child
where Child: BelongingToDsl<&'a [Parent]>,

Source§

impl<'a, Parent, Child> BelongingToDsl<(&'a [Parent], &'a [Parent])> for Child

Source§

type Output = <<Child as HasTable>::Table as FilterDsl<Grouped<In<<Child as BelongsTo<Parent>>::ForeignKeyColumn, <Vec<<&'a Parent as Identifiable>::Id> as AsInExpression<<<Child as BelongsTo<Parent>>::ForeignKeyColumn as Expression>::SqlType>>::InExpression>>>>::Output

Source§

impl<'a, Parent, Child> BelongingToDsl<&'a Parent> for Child
where &'a Parent: Identifiable, Child: HasTable + BelongsTo<Parent>, <&'a Parent as Identifiable>::Id: AsExpression<<<Child as BelongsTo<Parent>>::ForeignKeyColumn as Expression>::SqlType>, <Child as HasTable>::Table: FilterDsl<Grouped<Eq<<Child as BelongsTo<Parent>>::ForeignKeyColumn, <<&'a Parent as Identifiable>::Id as AsExpression<<<Child as BelongsTo<Parent>>::ForeignKeyColumn as Expression>::SqlType>>::Expression>>>, <Child as BelongsTo<Parent>>::ForeignKeyColumn: ExpressionMethods, <<Child as BelongsTo<Parent>>::ForeignKeyColumn as Expression>::SqlType: SqlType,

Source§

type Output = <<Child as HasTable>::Table as FilterDsl<Grouped<Eq<<Child as BelongsTo<Parent>>::ForeignKeyColumn, <<&'a Parent as Identifiable>::Id as AsExpression<<<Child as BelongsTo<Parent>>::ForeignKeyColumn as Expression>::SqlType>>::Expression>>>>::Output