Trait diesel::connection::LoadConnection

source ·
pub trait LoadConnection<B = DefaultLoadingMode>: Connection {
    type Cursor<'conn, 'query>: Iterator<Item = QueryResult<<Self as LoadConnection<B>>::Row<'conn, 'query>>>
       where Self: 'conn;
    type Row<'conn, 'query>: Row<'conn, Self::Backend>
       where Self: 'conn;

    // Required method
    fn load<'conn, 'query, T>(
        &'conn mut self,
        source: T,
    ) -> QueryResult<Self::Cursor<'conn, 'query>>
       where T: Query + QueryFragment<Self::Backend> + QueryId + 'query,
             Self::Backend: QueryMetadata<T::SqlType>;
}
Expand description

The specific part of a Connection which actually loads data from the database

This is a separate trait to allow connection implementations to specify different loading modes via the generic parameter.

Required Associated Types§

source

type Cursor<'conn, 'query>: Iterator<Item = QueryResult<<Self as LoadConnection<B>>::Row<'conn, 'query>>> where Self: 'conn

The cursor type returned by LoadConnection::load

Users should handle this as opaque type that implements Iterator

source

type Row<'conn, 'query>: Row<'conn, Self::Backend> where Self: 'conn

The row type used as Iterator::Item for the iterator implementation of LoadConnection::Cursor

Required Methods§

source

fn load<'conn, 'query, T>( &'conn mut self, source: T, ) -> QueryResult<Self::Cursor<'conn, 'query>>
where T: Query + QueryFragment<Self::Backend> + QueryId + 'query, Self::Backend: QueryMetadata<T::SqlType>,

Executes a given query and returns any requested values

This function executes a given query and returns the query result as given by the database. Normal users should not use this function. Use QueryDsl::load instead.

This function is useful for people trying to build an alternative dsl on top of diesel. It returns an impl Iterator<Item = QueryResult<&impl Row<Self::Backend>>. This type can be used to iterate over all rows returned by the database.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<B> LoadConnection<B> for PgConnection
where Self: PgLoadingMode<B>,

source§

type Cursor<'conn, 'query> = <PgConnection as PgLoadingMode<B>>::Cursor<'conn, 'query>

source§

type Row<'conn, 'query> = <PgConnection as PgLoadingMode<B>>::Row<'conn, 'query>