reactive_graph_command_api/
command_system.rs

1use std::sync::Arc;
2
3use async_trait::async_trait;
4use springtime_di::injectable;
5
6use reactive_graph_lifecycle::Lifecycle;
7use reactive_graph_reactive_service_api::ReactiveSystem;
8use reactive_graph_type_system_api::TypeSystem;
9
10use crate::CommandManager;
11use crate::CommandTypeProvider;
12
13#[injectable]
14#[async_trait]
15pub trait CommandSystem: Lifecycle {
16    fn get_command_manager(&self) -> Arc<dyn CommandManager + Send + Sync>;
17
18    fn get_command_type_provider(&self) -> Arc<dyn CommandTypeProvider + Send + Sync>;
19
20    fn type_system(&self) -> Arc<dyn TypeSystem + Send + Sync>;
21
22    fn reactive_system(&self) -> Arc<dyn ReactiveSystem + Send + Sync>;
23}