pub struct ProposalResult {
pub proposal_id: String,
pub original_proposal_id: String,
pub final_proposal: Option<ActionProposal>,
pub replan_lineage: Vec<ProposalLineageEntry>,
pub accepted_proposal_preimages: Vec<AcceptedProposalPreimage>,
pub results: Vec<ActionResult>,
pub cost: CostSummary,
}Expand description
The complete result of processing a proposal through the runtime.
Fields§
§proposal_id: StringThe final proposal generation that actually executed. When no replan was accepted this remains the original proposal id.
original_proposal_id: StringThe caller-submitted proposal id, unchanged across every replan.
final_proposal: Option<ActionProposal>Exact normal-serde preimage of the final proposal generation selected for execution. Legacy payloads may omit this field; every active runtime execution populates it so consumers can authenticate the final id, actions, parameters, dependencies, and declared effects against the accepted lineage digest.
replan_lineage: Vec<ProposalLineageEntry>Generation-ordered proposal identities and admission dispositions.
accepted_proposal_preimages: Vec<AcceptedProposalPreimage>Generation-ordered exact preimages for accepted lineage entries. This is result-owned evidence, not an EventLog projection, so configured log retention cannot remove it before a caller persists the run.
results: Vec<ActionResult>§cost: CostSummaryImplementations§
Source§impl ProposalResult
impl ProposalResult
pub fn new( proposal_id: impl Into<String>, results: Vec<ActionResult>, cost: CostSummary, ) -> ProposalResult
Sourcepub fn for_proposal(
proposal: &ActionProposal,
results: Vec<ActionResult>,
cost: CostSummary,
) -> ProposalResult
pub fn for_proposal( proposal: &ActionProposal, results: Vec<ActionResult>, cost: CostSummary, ) -> ProposalResult
Construct an active runtime result bound to its exact final proposal
preimage. Use Self::new only for legacy or synthetic results that
did not pass through proposal execution.
pub fn all_succeeded(&self) -> bool
pub fn summary(&self) -> HashMap<ActionStatus, usize>
Trait Implementations§
Source§impl Clone for ProposalResult
impl Clone for ProposalResult
Source§fn clone(&self) -> ProposalResult
fn clone(&self) -> ProposalResult
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ProposalResult
impl Debug for ProposalResult
Source§impl<'de> Deserialize<'de> for ProposalResult
impl<'de> Deserialize<'de> for ProposalResult
Source§fn deserialize<D>(
deserializer: D,
) -> Result<ProposalResult, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<ProposalResult, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
Source§impl PartialEq for ProposalResult
impl PartialEq for ProposalResult
Source§impl Serialize for ProposalResult
impl Serialize for ProposalResult
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for ProposalResult
Auto Trait Implementations§
impl Freeze for ProposalResult
impl RefUnwindSafe for ProposalResult
impl Send for ProposalResult
impl Sync for ProposalResult
impl Unpin for ProposalResult
impl UnsafeUnpin for ProposalResult
impl UnwindSafe for ProposalResult
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<T> ErasedDestructor for Twhere
T: 'static,
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