reactive_graph_plugin_delegates/
command_manager_impl.rs

1use std::sync::Arc;
2
3use springtime_di::Component;
4use springtime_di::component_alias;
5
6use reactive_graph_command_model::entity::Command;
7use reactive_graph_command_model::error::NoSuchCommand;
8
9#[derive(Component)]
10pub struct CommandManagerDelegate {
11    command_manager: Arc<dyn reactive_graph_command_api::CommandManager + Send + Sync>,
12}
13
14impl CommandManagerDelegate {
15    pub fn new(command_manager: Arc<dyn reactive_graph_command_api::CommandManager + Send + Sync>) -> Self {
16        Self { command_manager }
17    }
18}
19
20#[component_alias]
21impl reactive_graph_plugin_api::CommandManager for CommandManagerDelegate {
22    fn get_command(&self, name: &str) -> Result<Command, NoSuchCommand> {
23        self.command_manager.get_command(name)
24    }
25
26    fn get_commands(&self) -> Vec<Command> {
27        self.command_manager.get_commands()
28    }
29}