pub struct PreCommitContext {
pub flow_changes: Vec<Change>,
pub pending_writes: Vec<(EncodedKey, Option<EncodedRow>)>,
pub pending_shapes: Vec<RowShape>,
pub transaction_writes: Vec<(EncodedKey, Option<EncodedRow>)>,
pub view_entries: Vec<(ShapeId, Diff)>,
}Expand description
flow_changes carries the table-level changes accumulated during the transaction
(input for transactional flow interceptors).
pending_writes is populated by interceptors with view writes to be merged
back into the transaction before it commits.
Fields§
§flow_changes: Vec<Change>Table changes accumulated during this transaction (input to flow interceptors).
pending_writes: Vec<(EncodedKey, Option<EncodedRow>)>View writes produced by flow interceptors to merge back into the transaction.
Some(value) = set the key, None = remove the key.
pending_shapes: Vec<RowShape>Row shapes created during flow processing, to be persisted at commit time.
transaction_writes: Vec<(EncodedKey, Option<EncodedRow>)>Snapshot of the committing transaction’s pending KV writes (read-only base for flow processing).
Some(value) = set the key, None = remove the key.
view_entries: Vec<(ShapeId, Diff)>View-level accumulator entries produced by flow interceptors. Used by test infrastructure to feed view diffs back into the change accumulator.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for PreCommitContext
impl RefUnwindSafe for PreCommitContext
impl Send for PreCommitContext
impl Sync for PreCommitContext
impl Unpin for PreCommitContext
impl UnsafeUnpin for PreCommitContext
impl UnwindSafe for PreCommitContext
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
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>
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>
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 more