use crate::ProviderRegistry;
use std::sync::Arc;
#[derive(Clone)]
pub struct ModuleRef {
registry: Arc<ProviderRegistry>,
}
impl ModuleRef {
pub fn new(registry: Arc<ProviderRegistry>) -> Self {
Self { registry }
}
pub fn into_inner(self) -> Arc<ProviderRegistry> {
self.registry
}
pub fn get<T: Send + Sync + 'static>(&self) -> Arc<T> {
self.registry.get()
}
pub fn registry(&self) -> &ProviderRegistry {
self.registry.as_ref()
}
pub fn registry_arc(&self) -> &Arc<ProviderRegistry> {
&self.registry
}
}