pub enum Event {
RunFreshnessCheck {
id: String,
generation: u64,
},
RunRefresh {
id: String,
generation: u64,
},
AlreadyInFlight {
id: String,
},
Unregistered {
id: String,
},
BecameFresh {
id: String,
},
BecameFailed {
id: String,
consecutive_failures: u32,
error: String,
},
BecameNeedsReauth {
id: String,
reason: String,
},
}Variants§
RunFreshnessCheck
Orchestrator should call the registered is_fresh() closure now.
generation is this id’s registration epoch at dispatch time — the
orchestrator must echo it back unchanged in the resulting
Command::FreshnessChecked (and, if a refresh follows, in
RefreshSucceeded/RefreshFailed too). This lets the reducer detect
a stale completion: if register() replaces this id’s closures
(bumping its generation) while is_fresh()/refresh() is still
awaiting, the eventual result would otherwise silently clobber the
freshly re-registered credential’s state with a verdict about
closures that no longer apply (reagent re-review on #2275).
RunRefresh
Orchestrator should call the registered refresh() closure now.
generation carries the same epoch forward from RunFreshnessCheck.
AlreadyInFlight
Another caller is already checking/refreshing this id — the
orchestrator should wait on the id’s Notify and re-dispatch
CheckRequested once woken.
Unregistered
id was never registered (or was just unregistered).
BecameFresh
Diagnostics-only — mapped 1:1 to tracing by the orchestrator.
BecameFailed
BecameNeedsReauth
Trait Implementations§
impl StructuralPartialEq for Event
Auto Trait Implementations§
impl Freeze for Event
impl RefUnwindSafe for Event
impl Send for Event
impl Sync for Event
impl Unpin for Event
impl UnsafeUnpin for Event
impl UnwindSafe for Event
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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