pub struct ActorMesh<A: Referable> { /* private fields */ }Expand description
An ActorMesh is a collection of ranked A-typed actors.
Bound note: A: Referable because the mesh stores/returns
ActorRef<A>, which is only defined for A: Referable.
Implementations§
Methods from Deref<Target = ActorMeshRef<A>>§
Sourcepub fn cast<M>(&self, cx: &impl Actor, message: M) -> Result<()>
pub fn cast<M>(&self, cx: &impl Actor, message: M) -> Result<()>
Cast a message to all the actors in this mesh
Sourcepub fn cast_with_headers<M>(
&self,
cx: &impl Actor,
caller_headers: &Flattrs,
message: M,
) -> Result<()>
pub fn cast_with_headers<M>( &self, cx: &impl Actor, caller_headers: &Flattrs, message: M, ) -> Result<()>
Cast a message to all the actors in this mesh, merging
caller-supplied caller_headers into the per-rank envelope
headers before send. Used to propagate caller-known context
(e.g. operation-context keys marked with OPERATION_CONTEXT_HEADER)
onto the outgoing request so receivers can project it back
onto replies.
Sourcepub fn cast_choose_with_headers<M>(
&self,
cx: &impl Actor,
caller_headers: &Flattrs,
message: M,
) -> Result<()>
pub fn cast_choose_with_headers<M>( &self, cx: &impl Actor, caller_headers: &Flattrs, message: M, ) -> Result<()>
Cast a message to one randomly chosen actor in this mesh, merging
caller-supplied caller_headers into the outgoing envelope.
pub fn id(&self) -> &ActorMeshId
pub fn controller(&self) -> &Option<ActorRef<ActorMeshController<A>>>
Sourcepub async fn next_supervision_event(
&self,
cx: &impl Actor,
) -> Result<MeshFailure, Error>
pub async fn next_supervision_event( &self, cx: &impl Actor, ) -> Result<MeshFailure, Error>
Returns the next supervision event occurring on this mesh. Await this simultaneously with the return result of a message (such as awaiting a reply after a cast) to get back a message that indicates the actor that failed, instead of waiting forever for a reply. If there are multiple simultaneous awaits of next_supervision_event, all of them will receive the same event.
Sourcepub fn clone_with_supervision_receiver(&self) -> Self
pub fn clone_with_supervision_receiver(&self) -> Self
Same as Clone, but includes a shared supervision receiver. This copy will share the same health state and get the same supervision events. Will have a separate cache.
Trait Implementations§
Source§impl<A: Referable> Clone for ActorMesh<A>
Manual implementation of Clone because A doesn’t need to implement Clone
but we still want to be able to clone the ActorMesh.
impl<A: Referable> Clone for ActorMesh<A>
Manual implementation of Clone because A doesn’t need to implement Clone
but we still want to be able to clone the ActorMesh.
Auto Trait Implementations§
impl<A> !Freeze for ActorMesh<A>
impl<A> RefUnwindSafe for ActorMesh<A>
impl<A> Send for ActorMesh<A>
impl<A> Sync for ActorMesh<A>
impl<A> Unpin for ActorMesh<A>
impl<A> UnsafeUnpin for ActorMesh<A>
impl<A> UnwindSafe for ActorMesh<A>
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].