reactive_graph_runtime_web_api/
web_resource_manager.rs1use std::sync::Arc;
2
3use async_trait::async_trait;
4use springtime_di::injectable;
5use uuid::Uuid;
6
7use reactive_graph_lifecycle::Lifecycle;
8use reactive_graph_plugin_api::WebResourceProvider;
9
10#[injectable]
11#[async_trait]
12pub trait WebResourceManager: Send + Sync + Lifecycle {
13 fn has(&self, context_path: String) -> bool;
15
16 fn get(&self, context_path: String) -> Option<Arc<dyn WebResourceProvider>>;
18
19 fn get_default(&self) -> Option<Arc<dyn WebResourceProvider>>;
21
22 async fn register_provider(&self, web_resource_provider: Arc<dyn WebResourceProvider>);
24
25 async fn unregister_provider(&self, id: Uuid);
27}