pub struct Coordinator { /* private fields */ }Expand description
Coordinator handler. One instance is bound to one in-flight
query; finalising the FSM produces a SearchResponse.
Implementations§
Source§impl Coordinator
impl Coordinator
Sourcepub fn new(
request: SearchRequest,
peers: Vec<String>,
probe: PeerProbe,
deadline: Duration,
) -> (Self, Arc<Mutex<Option<SearchResponse>>>)
pub fn new( request: SearchRequest, peers: Vec<String>, probe: PeerProbe, deadline: Duration, ) -> (Self, Arc<Mutex<Option<SearchResponse>>>)
Build a new coordinator. peers is the list of peer
identifiers the request will fan out to; probe is
invoked synchronously per peer to fetch hits.
The coordinator’s peers_consulted field on the eventual
response counts the number of peers that returned hits
(errors are logged through tracing::warn! and
otherwise dropped).
Trait Implementations§
Source§impl FsmHandler for Coordinator
impl FsmHandler for Coordinator
Source§type State = State
type State = State
The set of states this FSM can be in. Typically a
Copy enum
with no payload; the per-state context lives in self.Source§type Event = Event
type Event = Event
Events the FSM accepts. Includes both external events and any
internal follow-ups posted via
crate::Action::post_internal.Source§type Stop = String
type Stop = String
Reason this FSM stopped. Returned to the caller through
crate::FsmDriver::join.Source§fn initial(&self) -> Self::State
fn initial(&self) -> Self::State
The state the FSM starts in. Called once during driver
startup, before any events.
Source§fn handle(
&mut self,
state: Self::State,
_event_type: EventType,
event: Self::Event,
) -> Transition<Self>
fn handle( &mut self, state: Self::State, _event_type: EventType, event: Self::Event, ) -> Transition<Self>
Handle one event in the given state. Return a
Transition
describing where to go next and which side effects to apply. Read moreSource§fn on_timeout(
&mut self,
state: Self::State,
_kind: TimeoutKind,
) -> Transition<Self>
fn on_timeout( &mut self, state: Self::State, _kind: TimeoutKind, ) -> Transition<Self>
Called when a timer fires. Default impl returns
Transition::Keep(vec![]) (no-op). Read moreAuto Trait Implementations§
impl Freeze for Coordinator
impl !RefUnwindSafe for Coordinator
impl Send for Coordinator
impl Sync for Coordinator
impl Unpin for Coordinator
impl UnsafeUnpin for Coordinator
impl !UnwindSafe for Coordinator
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.