reactive_graph_plugin_service_api/
plugin_resolver.rs1use async_trait::async_trait;
2use springtime_di::injectable;
3
4use reactive_graph_lifecycle::Lifecycle;
5
6use crate::PluginResolverMode;
7use crate::PluginTransitionResult;
8
9#[injectable]
10#[async_trait]
11pub trait PluginResolver: Send + Sync + Lifecycle {
12 async fn resolve_until_idle(&self);
14
15 async fn stop_until_all_stopped(&self);
17
18 async fn resolve(&self) -> PluginTransitionResult;
20
21 async fn transition_to_fallback_states(&self);
22
23 fn set_mode(&self, mode: PluginResolverMode);
25
26 fn get_mode(&self) -> PluginResolverMode;
28}