pub struct ServiceRegistry {
pub services: HashMap<String, ServiceInfo>,
pub last_discovery: Instant,
pub discovery_interval: Duration,
}Expand description
Registry of all discovered services
Fields§
§services: HashMap<String, ServiceInfo>Map of service name to service info
last_discovery: InstantLast discovery timestamp (not serializable)
discovery_interval: DurationConfigurable discovery interval
Implementations§
Source§impl ServiceRegistry
impl ServiceRegistry
Sourcepub fn register(&mut self, service: ServiceInfo)
pub fn register(&mut self, service: ServiceInfo)
Register a service
Sourcepub fn unregister(&mut self, name: &str) -> Option<ServiceInfo>
pub fn unregister(&mut self, name: &str) -> Option<ServiceInfo>
Unregister a service
Sourcepub fn get(&self, name: &str) -> Option<&ServiceInfo>
pub fn get(&self, name: &str) -> Option<&ServiceInfo>
Get service info by name
Sourcepub fn get_mut(&mut self, name: &str) -> Option<&mut ServiceInfo>
pub fn get_mut(&mut self, name: &str) -> Option<&mut ServiceInfo>
Get mutable service info by name
Sourcepub fn should_discover(&self) -> bool
pub fn should_discover(&self) -> bool
Check if it’s time for discovery
Sourcepub fn healthy_services(&self) -> Vec<&ServiceInfo>
pub fn healthy_services(&self) -> Vec<&ServiceInfo>
Get all healthy services
Sourcepub fn unhealthy_services(&self) -> Vec<&ServiceInfo>
pub fn unhealthy_services(&self) -> Vec<&ServiceInfo>
Get all unhealthy services
Sourcepub fn mark_discovery(&mut self)
pub fn mark_discovery(&mut self)
Mark discovery time
Trait Implementations§
Source§impl Clone for ServiceRegistry
impl Clone for ServiceRegistry
Source§fn clone(&self) -> ServiceRegistry
fn clone(&self) -> ServiceRegistry
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ServiceRegistry
impl Debug for ServiceRegistry
Auto Trait Implementations§
impl Freeze for ServiceRegistry
impl RefUnwindSafe for ServiceRegistry
impl Send for ServiceRegistry
impl Sync for ServiceRegistry
impl Unpin for ServiceRegistry
impl UnwindSafe for ServiceRegistry
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> 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>
Convert
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>
Convert
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)
Convert
&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)
Convert
&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<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>
§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
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>,
Applies the layer to a service and wraps it in [
Layered].