pub struct DocumentOutcome {
pub per_action: Vec<Result<ScenarioVerdict, ScenarioFailure>>,
pub verdict: Option<ScenarioVerdict>,
pub final_failure: Option<ScenarioFailure>,
pub inbound_bound: Option<SocketAddr>,
pub logs_failure: Option<String>,
}Expand description
The outcome of executing a whole scenario document (ADR-0069 sections 5 and 7).
run_scenario_document fills
per_action with one outcome per executed action and stops at the
first failure; verdict is Some(Pass) only when every action
passed. final_failure is the post-verdict slot: the caller that
owns the boot (the CLI, after BootHandle::shutdown) records a
ShutdownFailure there without masking the recorded verdict.
Fields§
§per_action: Vec<Result<ScenarioVerdict, ScenarioFailure>>One outcome per executed action, in action order; actions after the first failure never ran.
verdict: Option<ScenarioVerdict>Some(Pass) when every action completed; None after any
failure.
final_failure: Option<ScenarioFailure>Post-verdict shutdown failure, recorded by the boot-owning caller; empty when teardown is clean or never ran.
inbound_bound: Option<SocketAddr>The bound address of the document’s inbound: listener
(rc-5yon, ADR-0070), filled by the boot-owning caller from
crate::boot_scenario::ScenarioRun::inbound_bound after the
boot, so tests target the ephemeral listener without re-deriving
it. None when the document declares no inbound: listener or
the caller never filled it; the post-boot slot, as
final_failure is the post-verdict slot.
logs_failure: Option<String>Document-level logs: block violation (rc-tdgh5): a rendered
diagnostic naming each violated clause — for noLevelAbove,
each offending event’s level, target, and message. Some only
when every action passed and the logs evaluation then failed,
so verdict is None alongside it. None when the document
declares no logs: block, the block passed, an action failed
first (the block never evaluated), or capture was unavailable
(the apparatus failure lives in per_action).
Trait Implementations§
Source§impl Clone for DocumentOutcome
impl Clone for DocumentOutcome
Source§fn clone(&self) -> DocumentOutcome
fn clone(&self) -> DocumentOutcome
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 DocumentOutcome
impl Debug for DocumentOutcome
Source§impl PartialEq for DocumentOutcome
impl PartialEq for DocumentOutcome
impl StructuralPartialEq for DocumentOutcome
Auto Trait Implementations§
impl Freeze for DocumentOutcome
impl RefUnwindSafe for DocumentOutcome
impl Send for DocumentOutcome
impl Sync for DocumentOutcome
impl Unpin for DocumentOutcome
impl UnsafeUnpin for DocumentOutcome
impl UnwindSafe for DocumentOutcome
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request