use crate::{ModuleRef, RouteInfo, RouteRegistry};
use std::any::TypeId;
pub struct DiscoveryService {
module: ModuleRef,
}
impl DiscoveryService {
pub fn new(module: ModuleRef) -> Self {
Self { module }
}
pub fn module_ref(&self) -> ModuleRef {
self.module.clone()
}
pub fn get_providers(&self) -> Vec<TypeId> {
self.module.registry().registered_type_ids()
}
pub fn get_provider_type_names(&self) -> Vec<&'static str> {
self.module.registry().registered_type_names()
}
pub fn get_routes(&self) -> Vec<RouteInfo> {
RouteRegistry::list()
}
}