Skip to main content

Module interceptor

Module interceptor 

Source
Expand description

SaveChanges interceptor — hooks into the DbContext lifecycle.

Provides an interception pipeline analogous to EFCore’s ISaveChangesInterceptor: before/after save, and on failure. Interceptors are registered via DbContextOptionsBuilder::add_interceptor().

§Example (user code)

use lref::interceptor::{ISaveChangesInterceptor, SaveChangesContext};

struct AuditInterceptor;

#[async_trait::async_trait]
impl ISaveChangesInterceptor for AuditInterceptor {
    async fn on_saving(&self, ctx: &SaveChangesContext) -> LrefResult<()> {
        println!("Saving {} entries", ctx.entries().len());
        Ok(())
    }
}

Structs§

SaveChangesContext
Read-only snapshot of the save operation, passed to interceptors.
SaveChangesResultContext
Context passed to interceptors after a successful save.

Traits§

ISaveChangesInterceptor
Interface for intercepting save_changes() operations.