Trait DeleteRepositoryTransaction

Source
pub trait DeleteRepositoryTransaction<M: Model>: DeleteRepository<M> + TransactionRepository<M> {
    // Provided methods
    fn delete_by_id_in_transaction<'a>(
        &'a self,
        id: impl Into<M::Id> + Send + 'a,
    ) -> impl Future<Output = Result<(), Error>> + Send + 'a
       where M::Id: 'a { ... }
    fn delete_by_filter_in_transaction<'a>(
        &'a self,
        filter: impl SqlFilter<'a> + Send + 'a,
    ) -> impl Future<Output = Result<(), Error>> + Send + 'a { ... }
    fn delete_by_values_in_transaction<'a, I>(
        &'a self,
        column: &'static str,
        values: I,
    ) -> impl Future<Output = Result<(), Error>> + Send + 'a
       where M::Id: Type<Database> + Encode<'a, Database> + 'a,
             I: IntoIterator<Item = M::Id> + Send + 'a,
             I::IntoIter: Send + 'a { ... }
}

Provided Methods§

Source

fn delete_by_id_in_transaction<'a>( &'a self, id: impl Into<M::Id> + Send + 'a, ) -> impl Future<Output = Result<(), Error>> + Send + 'a
where M::Id: 'a,

Source

fn delete_by_filter_in_transaction<'a>( &'a self, filter: impl SqlFilter<'a> + Send + 'a, ) -> impl Future<Output = Result<(), Error>> + Send + 'a

Source

fn delete_by_values_in_transaction<'a, I>( &'a self, column: &'static str, values: I, ) -> impl Future<Output = Result<(), Error>> + Send + 'a
where M::Id: Type<Database> + Encode<'a, Database> + 'a, I: IntoIterator<Item = M::Id> + Send + 'a, I::IntoIter: Send + 'a,

Examples found in repository?
examples/basic_repo.rs (line 207)
175async fn main() {
176    install_default_drivers();
177
178    initialize_db_pool(
179        PoolOptions::new()
180            .max_connections(21)
181            .min_connections(5)
182            .idle_timeout(Duration::from_secs(60 * 10))
183            .max_lifetime(Duration::from_secs(60 * 60 * 24))
184            .acquire_timeout(Duration::from_secs(20))
185            .connect(&DATABASE_URL)
186            .await
187            .expect("Failed to connect to database"),
188    );
189
190    let user = User {
191        id: 1,
192        name: String::new(),
193    };
194
195    USER_REPO.save_ref(&user).await.unwrap();
196
197    USER_REPO.save_in_transaction(user.clone()).await.unwrap();
198
199    USER_REPO
200        .save_with_context(user.clone(), UserContext::System)
201        .await
202        .unwrap();
203
204    USER_REPO.with_transaction(action).await.unwrap();
205
206    USER_REPO
207        .delete_by_values_in_transaction("id", [1, 2, 3, 11, 22])
208        .await
209        .unwrap();
210}

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§