pub enum Assertion {
DidNotHappen,
Landed(Value),
}Expand description
What a person asserts about an effect the runtime could not decide.
The same two answers a Reconciliation probe
can reach, minus the third. Inconclusive is missing on purpose: a probe
records it because having asked is a fact about the run, and the doubt
stands either way. A person who cannot tell has already left the doubt
standing, and their finding belongs in the reason on the decision that
closes the run — where somebody will read it — rather than in a record that
changes nothing.
Variants§
DidNotHappen
The call never took. Nothing changed outside, and the effect is safe to perform again — which is what a reopened run will do.
Landed(Value)
The call took, and this is the result the run reads back.
§The label this value carries
Untrusted and Internal, always, and it is not a caller’s choice.
Every other output in this runtime is labelled by the effect that
produced it — trust() and output_sensitivity(), declared in code or
in operator configuration — and there is no effect here: an offline verb
has no instance in hand, and the person typing the value is not the
provider that returned it.
So it takes the conservative point of the lattice, the same one an inbound event’s payload gets, and the consequence is stated rather than hidden: a reopened run reaches its sinks with a value the gates judge on its merits, and a run that needed this output to be trusted will be refused there and unwind. That is the honest ending. The alternative — letting the resolution declare its own trust — makes the 3 a.m. verb the one place in this design where a person can declassify by typing.
Implementations§
Source§impl Assertion
impl Assertion
Sourcepub const fn disposition(&self) -> Disposition
pub const fn disposition(&self) -> Disposition
The assertion in the vocabulary a failure and a probe both use.
Trait Implementations§
impl StructuralPartialEq for Assertion
Auto Trait Implementations§
impl Freeze for Assertion
impl RefUnwindSafe for Assertion
impl Send for Assertion
impl Sync for Assertion
impl Unpin for Assertion
impl UnsafeUnpin for Assertion
impl UnwindSafe for Assertion
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,
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