pub trait PersistenceModel {
type PState: Clone;
type Delta: Clone;
// Required methods
fn apply(
state: &mut Self::PState,
delta: &Self::Delta,
) -> Result<(), String>;
fn derive(
before: &Self::PState,
after: &Self::PState,
) -> Result<Self::Delta, String>;
fn open_delta(session: SessionId) -> Self::Delta;
fn close_delta(session: SessionId) -> Self::Delta;
// Provided methods
fn invoke_delta(_session: SessionId, _action: &str) -> Option<Self::Delta> { ... }
fn openDelta(session: SessionId) -> Self::Delta { ... }
fn closeDelta(session: SessionId) -> Self::Delta { ... }
fn invokeDelta(session: SessionId, action: &str) -> Option<Self::Delta> { ... }
}Expand description
Persistence-model contract.
Required Associated Types§
Required Methods§
Sourcefn open_delta(session: SessionId) -> Self::Delta
fn open_delta(session: SessionId) -> Self::Delta
Open-session lifecycle delta.
Sourcefn close_delta(session: SessionId) -> Self::Delta
fn close_delta(session: SessionId) -> Self::Delta
Close-session lifecycle delta.
Provided Methods§
Sourcefn invoke_delta(_session: SessionId, _action: &str) -> Option<Self::Delta>
fn invoke_delta(_session: SessionId, _action: &str) -> Option<Self::Delta>
Optional invoke-action delta.
Sourcefn closeDelta(session: SessionId) -> Self::Delta
fn closeDelta(session: SessionId) -> Self::Delta
Lean-name compatibility wrapper.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".