reactive_graph_plugin_delegates/
entity_type_provider_registry_delegate.rs

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