Skip to main content

SoftDelete

Trait SoftDelete 

Source
pub trait SoftDelete: Model {
    // Provided methods
    fn deleted_at_column() -> &'static str { ... }
    fn soft_delete(&self, executor: &mut impl Executor) -> OrmResult<()> { ... }
    fn restore(&self, executor: &mut impl Executor) -> OrmResult<()> { ... }
    fn find_active() -> QueryBuilder<Self> { ... }
    fn find_with_trashed() -> QueryBuilder<Self> { ... }
    fn find_only_trashed() -> QueryBuilder<Self> { ... }
}
Expand description

Marker trait for models with a deleted_at timestamp column.

When implemented, QueryBuilder can automatically scope queries to exclude soft-deleted rows (via with_soft_delete_scope()), and the model gains soft_delete() and restore() helpers.

Provided Methods§

Source

fn deleted_at_column() -> &'static str

The column name used for soft-delete timestamps (default: "deleted_at").

Source

fn soft_delete(&self, executor: &mut impl Executor) -> OrmResult<()>

Soft-delete this model by setting deleted_at = NOW().

Source

fn restore(&self, executor: &mut impl Executor) -> OrmResult<()>

Restore a soft-deleted model by setting deleted_at = NULL.

Source

fn find_active() -> QueryBuilder<Self>

Returns a QueryBuilder pre-scoped to exclude soft-deleted rows.

Source

fn find_with_trashed() -> QueryBuilder<Self>

Returns a QueryBuilder that includes soft-deleted rows.

Source

fn find_only_trashed() -> QueryBuilder<Self>

Returns a QueryBuilder scoped to only soft-deleted rows.

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§