pub struct PersistCtx {
pub items: Vec<PersistItemCtx>,
pub origins: Vec<Value>,
pub context: Value,
pub state: Map<String, Value>,
pub transaction: Option<u64>,
}Expand description
W3 / W4 / W5 (physical-persist-level) context — fires AFTER derivation, on the
REAL composed batch. before (W3) may mutate Self::items, may error to
abort; after (W4) observes the executor results; onError (W5) may recover.
In a transaction the persist hooks fire ONCE for the whole atomic batch; for a
single-op write items is a one-element list. Each item is a composed
transact-item-shaped mutation whose expression fields a W3 hook may edit.
Fields§
§items: Vec<PersistItemCtx>The composed physical write items (Put/Update/Delete/ConditionCheck).
origins: Vec<Value>The {model, kind} origin of each logical write feeding the batch.
context: ValueThe per-call context.
state: Map<String, Value>Per-persist scratch.
transaction: Option<u64>The transaction identity, when this persist is an atomic batch.
Trait Implementations§
Source§impl Clone for PersistCtx
impl Clone for PersistCtx
Source§fn clone(&self) -> PersistCtx
fn clone(&self) -> PersistCtx
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for PersistCtx
impl RefUnwindSafe for PersistCtx
impl Send for PersistCtx
impl Sync for PersistCtx
impl Unpin for PersistCtx
impl UnsafeUnpin for PersistCtx
impl UnwindSafe for PersistCtx
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreCreates a shared type from an unshared type.