pub struct Resolver<A: Address, K, D: Protocol<Addr = A>, Route: DeliveryRoute<Protocol: Protocol<Addr = A, Msg = Resolution<K, D>>>> { /* private fields */ }Expand description
Immutable read-only typed resolver behavior.
Construction copies a borrowed unique binding definition, so rejection
cannot consume caller ownership. The public protocol contains only
ResolverMessage::Resolve, making registry mutation authority
unrepresentable for holders of a resolver recipient. Every lookup emits one
factual Resolution, including absence. Binding order is retained for
deterministic inspection but does not affect lookup meaning. Initialization
is empty, the behavior creates no actors, never terminates by policy, and
requires only typed delivery. Capability separation and missing-as-fact are
Bombay policy; endpoint validity is interpreted by Bombay Address. No
method has a semantic panic condition.
Implementations§
Source§impl<A, K, D, Route> Resolver<A, K, D, Route>where
A: Address,
K: Clone + Eq,
D: Protocol<Addr = A>,
Route: DeliveryRoute<Protocol: Protocol<Addr = A, Msg = Resolution<K, D>>>,
impl<A, K, D, Route> Resolver<A, K, D, Route>where
A: Address,
K: Clone + Eq,
D: Protocol<Addr = A>,
Route: DeliveryRoute<Protocol: Protocol<Addr = A, Msg = Resolution<K, D>>>,
Sourcepub fn from_bindings(
bindings: &[(K, Recipient<D>)],
) -> Result<Self, ResolverConfigError<K>>
pub fn from_bindings( bindings: &[(K, Recipient<D>)], ) -> Result<Self, ResolverConfigError<K>>
Copy one borrowed immutable binding definition.
§Errors
Returns ResolverConfigError::DuplicateKey for the first duplicate;
the borrowed source remains owned by the caller.