reactive_graph_plugin_delegates/
component_provider_registry_delegate.rs1use async_trait::async_trait;
2use std::sync::Arc;
3
4use reactive_graph_graph::Components;
5use reactive_graph_type_system_api::TypeProvider;
6
7pub struct ComponentProviderRegistryDelegate(Arc<dyn reactive_graph_type_system_api::ComponentProviderRegistry + Send + Sync>);
8
9impl ComponentProviderRegistryDelegate {
10 pub fn new(provider_registry: &Arc<dyn reactive_graph_type_system_api::ComponentProviderRegistry + Send + Sync>) -> Self {
11 Self(provider_registry.clone())
12 }
13}
14
15#[async_trait]
16impl reactive_graph_plugin_api::ComponentProviderRegistry for ComponentProviderRegistryDelegate {
17 async fn register_provider(&self, provider: Arc<dyn TypeProvider<Components>>) {
18 self.0.register_provider(provider).await
19 }
20
21 async fn unregister_provider(&self, id: &str) {
22 self.0.unregister_provider(id).await
23 }
24}