pub enum ResolveReferenceMessage {
Resolve {
reference_string: String,
reply: OncePortRef<ResolveReferenceResponse>,
},
}Expand description
Message for resolving an opaque reference string into a
NodePayload.
This is the primary “navigation” request used by the admin HTTP
bridge: the caller provides a reference (e.g. "root", a ProcId
string, or an ActorId string) and the MeshAdminAgent returns a
uniformly shaped NodePayload plus child references to continue
walking the topology.
The work happens inside the admin actor’s message loop so resolution can:
- parse and validate the reference format,
- dispatch to the right host/proc/actor via existing admin queries, and
- return a structured payload without blocking HTTP handlers on mesh logic.
Variants§
Resolve
Resolve reference_string to a NodePayload.
On success the reply contains payload=Some(..), error=None; on failure
it contains payload=None, error=Some(..).
Fields
reply: OncePortRef<ResolveReferenceResponse>Reply port receiving the resolution result.
Trait Implementations§
Source§impl Clone for ResolveReferenceMessage
impl Clone for ResolveReferenceMessage
Source§fn clone(&self) -> ResolveReferenceMessage
fn clone(&self) -> ResolveReferenceMessage
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ResolveReferenceMessage
impl Debug for ResolveReferenceMessage
Source§impl<'de> Deserialize<'de> for ResolveReferenceMessage
impl<'de> Deserialize<'de> for ResolveReferenceMessage
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Handler<ResolveReferenceMessage> for MeshAdminAgent
Manual Handler impl — swallows reply.send() failures so the
admin agent stays alive when the HTTP caller disconnects.
impl Handler<ResolveReferenceMessage> for MeshAdminAgent
Manual Handler impl — swallows reply.send() failures so the
admin agent stays alive when the HTTP caller disconnects.
Source§fn handle<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, Self>,
msg: ResolveReferenceMessage,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn handle<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, Self>,
msg: ResolveReferenceMessage,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Dispatches ResolveReferenceMessage variants.
The inner resolve_reference call never returns Err to the
handler — failures are captured in the response payload.
Reply-send failures are swallowed for the same reason as
MeshAdminMessage: a dropped receiver means the caller (HTTP
bridge) went away, which must not crash the admin agent.
Source§impl Named for ResolveReferenceMessage
impl Named for ResolveReferenceMessage
Source§fn typename() -> &'static str
fn typename() -> &'static str
Source§fn typehash() -> u64
fn typehash() -> u64
Source§fn arm(&self) -> Option<&'static str>
fn arm(&self) -> Option<&'static str>
Source§fn typeid() -> TypeId
fn typeid() -> TypeId
Source§impl PartialEq for ResolveReferenceMessage
impl PartialEq for ResolveReferenceMessage
Source§impl Serialize for ResolveReferenceMessage
impl Serialize for ResolveReferenceMessage
impl Accepts<ResolveReferenceMessage> for MeshAdminAgent
impl RemoteHandles<ResolveReferenceMessage> for MeshAdminAgent
impl StructuralPartialEq for ResolveReferenceMessage
Auto Trait Implementations§
impl !Freeze for ResolveReferenceMessage
impl RefUnwindSafe for ResolveReferenceMessage
impl Send for ResolveReferenceMessage
impl Sync for ResolveReferenceMessage
impl Unpin for ResolveReferenceMessage
impl UnwindSafe for ResolveReferenceMessage
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync 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
Source§impl<T> Checkpointable for Twhere
T: RemoteMessage + Clone,
impl<T> Checkpointable for Twhere
T: RemoteMessage + Clone,
Source§type State = T
type State = 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>
Source§impl<A, M> Handler<IndexedErasedUnbound<M>> for A
impl<A, M> Handler<IndexedErasedUnbound<M>> for A
§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].