use std::any::Any;
use std::sync::Arc;
pub trait IServiceLocator: Send + Sync {
fn get_any(&self, type_key: &str) -> Option<Arc<dyn Any + Send + Sync>>;
fn get_any_named(&self, name: &str) -> Option<Arc<dyn Any + Send + Sync>>;
fn register_named_any(&self, name: &str, service: Arc<dyn Any + Send + Sync>);
fn remove_named(&self, name: &str);
}
pub trait INamedRegistrar: Send + Sync {
fn register_named_any(&self, name: &str, service: Arc<dyn Any + Send + Sync>);
fn remove_named(&self, name: &str);
}