reactive_graph_plugin_delegates/
component_provider_registry_delegate.rs

1use 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}