Skip to main content

PersistentEntity

Trait PersistentEntity 

Source
pub trait PersistentEntity:
    Clone
    + Send
    + Sync
    + Debug
    + Serialize
    + DeserializeOwned
    + 'static {
Show 13 methods // Required methods fn entity_id(&self) -> String; fn set_entity_id(&mut self, id: String); fn created_at(&self) -> Option<DateTime<Utc>>; fn set_created_at(&mut self, ts: DateTime<Utc>); fn updated_at(&self) -> Option<DateTime<Utc>>; fn set_updated_at(&mut self, ts: DateTime<Utc>); fn deleted_at(&self) -> Option<DateTime<Utc>>; fn set_deleted_at(&mut self, ts: Option<DateTime<Utc>>); // Provided methods fn is_deleted(&self) -> bool { ... } fn mark_deleted(&mut self) { ... } fn restore(&mut self) { ... } fn touch(&mut self) { ... } fn generate_id() -> String { ... }
}
Expand description

Trait for entities that can be persisted.

This trait defines the common fields and behavior required by all entities that can be stored and retrieved from a repository.

Required Methods§

Source

fn entity_id(&self) -> String

Get the entity’s unique identifier

Source

fn set_entity_id(&mut self, id: String)

Set the entity’s unique identifier

Source

fn created_at(&self) -> Option<DateTime<Utc>>

Get creation timestamp

Source

fn set_created_at(&mut self, ts: DateTime<Utc>)

Set creation timestamp

Source

fn updated_at(&self) -> Option<DateTime<Utc>>

Get last update timestamp

Source

fn set_updated_at(&mut self, ts: DateTime<Utc>)

Set last update timestamp

Source

fn deleted_at(&self) -> Option<DateTime<Utc>>

Get soft delete timestamp (None if not deleted)

Source

fn set_deleted_at(&mut self, ts: Option<DateTime<Utc>>)

Set soft delete timestamp

Provided Methods§

Source

fn is_deleted(&self) -> bool

Check if entity is soft-deleted

Source

fn mark_deleted(&mut self)

Mark entity as deleted (soft delete)

Source

fn restore(&mut self)

Restore a soft-deleted entity

Source

fn touch(&mut self)

Touch the entity (update timestamp)

Source

fn generate_id() -> String

Generate a new ID for this entity type

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§