reactive_graph_plugin_delegates/
entity_type_provider_registry_delegate.rs1use 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}