pub trait TransitionStep: Serialize + Clone {
// Required method
fn disposition(&self) -> &StepDisposition;
// Provided methods
fn effects(&self) -> &[KernelEffect] { ... }
fn terminal(&self) -> Option<&KernelTerminal> { ... }
}Expand description
The one thing the transaction layer needs to know about a planned step.
It is not “a step is a struct with these fields”: the step type belongs to the semantic kernel
(Phase 3/4) and travels through here as a generic. What the transaction must see is only what
a commit publishes, and §7.12 already fixed that shape as StepDisposition — effects or a
terminal, never both.
Required Methods§
fn disposition(&self) -> &StepDisposition
Provided Methods§
fn effects(&self) -> &[KernelEffect]
fn terminal(&self) -> Option<&KernelTerminal>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".