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