Trait diesel_async::UpdateAndFetchResults
source · [−]pub trait UpdateAndFetchResults<Changes, Output>: AsyncConnection {
fn update_and_fetch<'life0, 'async_trait>(
&'life0 mut self,
changeset: Changes
) -> Pin<Box<dyn Future<Output = QueryResult<Output>> + Send + 'async_trait>>
where
Changes: 'async_trait,
'life0: 'async_trait,
Self: 'async_trait;
}
Expand description
A trait defining how to update a record and fetch the updated entry on a certain backend.
The only case where it is required to work with this trait is while
implementing a new connection type.
Otherwise use SaveChangesDsl
For implementing this trait for a custom backend:
- The
Changes
generic parameter represents the changeset that should be stored - The
Output
generic parameter represents the type of the response.
Required Methods
sourcefn update_and_fetch<'life0, 'async_trait>(
&'life0 mut self,
changeset: Changes
) -> Pin<Box<dyn Future<Output = QueryResult<Output>> + Send + 'async_trait>>where
Changes: 'async_trait,
'life0: 'async_trait,
Self: 'async_trait,
fn update_and_fetch<'life0, 'async_trait>(
&'life0 mut self,
changeset: Changes
) -> Pin<Box<dyn Future<Output = QueryResult<Output>> + Send + 'async_trait>>where
Changes: 'async_trait,
'life0: 'async_trait,
Self: 'async_trait,
See the traits documentation.
Implementors
impl<'b, Changes, Output> UpdateAndFetchResults<Changes, Output> for AsyncMysqlConnectionwhere
Output: Send,
Changes: Copy + Identifiable + Send,
Changes: AsChangeset<Target = <Changes as HasTable>::Table> + IntoUpdateTarget,
Changes::Table: FindDsl<Changes::Id> + Send,
Changes::WhereClause: Send,
Changes::Changeset: Send,
Changes::Id: Send,
Update<Changes, Changes>: ExecuteDsl<AsyncMysqlConnection>,
Find<Changes::Table, Changes::Id>: LoadQuery<'b, AsyncMysqlConnection, Output> + Send + 'b,
<Changes::Table as Table>::AllColumns: ValidGrouping<()>,
<<Changes::Table as Table>::AllColumns as ValidGrouping<()>>::IsAggregate: MixedAggregates<No, Output = No>,
<Changes::Table as QuerySource>::FromClause: Send,
Available on crate feature
mysql
only.impl<'b, Changes, Output> UpdateAndFetchResults<Changes, Output> for AsyncPgConnectionwhere
Output: Send,
Changes: Copy + AsChangeset<Target = <Changes as HasTable>::Table> + IntoUpdateTarget + Send,
Update<Changes, Changes>: LoadQuery<'b, AsyncPgConnection, Output>,
Changes::Table: Send + 'b,
Changes::WhereClause: Send + 'b,
Changes::Changeset: Send + 'b,
<Changes::Table as Table>::AllColumns: ValidGrouping<()>,
<<Changes::Table as Table>::AllColumns as ValidGrouping<()>>::IsAggregate: MixedAggregates<No, Output = No>,
<Changes::Table as QuerySource>::FromClause: Send,
Available on crate feature
postgres
only.