pub enum ResolveOutcome {
Resolved,
StillPending,
Error,
}Expand description
The outcome of a ApprovalCore::resolve call, so the calling adapter can
decide whether to evict its code↔id mapping. Mirrors the #403 contract: a
real resolve is Resolved; a fan-out non-resolve comes back Pending.
Variants§
Resolved
The row moved to Resolved (this call won the first-writer-wins guard,
or it was already resolved by a converging racer — either way the
approval is now resolved). The adapter may evict its code mapping.
StillPending
HostState::resolve_approval returned Ok but the row is still
Pending (the cross-session fan-out branch — host.rs:334-366). The
row did NOT move; the adapter must NOT evict its code or report success.
Should be unreachable for an eligible (system-level) row, but handled as
defense-in-depth.
Error
HostState::resolve_approval returned an Err (e.g. unknown id, or an
owner that is no longer connected). Nothing moved.
Trait Implementations§
Source§impl Clone for ResolveOutcome
impl Clone for ResolveOutcome
Source§fn clone(&self) -> ResolveOutcome
fn clone(&self) -> ResolveOutcome
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for ResolveOutcome
Source§impl Debug for ResolveOutcome
impl Debug for ResolveOutcome
impl Eq for ResolveOutcome
Source§impl PartialEq for ResolveOutcome
impl PartialEq for ResolveOutcome
impl StructuralPartialEq for ResolveOutcome
Auto Trait Implementations§
impl Freeze for ResolveOutcome
impl RefUnwindSafe for ResolveOutcome
impl Send for ResolveOutcome
impl Sync for ResolveOutcome
impl Unpin for ResolveOutcome
impl UnsafeUnpin for ResolveOutcome
impl UnwindSafe for ResolveOutcome
Blanket Implementations§
impl<T> Boilerplate for T
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<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
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