#![cfg_attr(coverage_nightly, coverage(off))]
mod analyze;
mod demo;
mod executor;
mod generate;
mod utility;
pub use analyze::AnalyzeCommandGroup;
pub use demo::{CommandExecutorFactory, DemoCommandGroup};
pub use generate::GenerateCommandGroup;
pub use utility::UtilityCommandGroup;
use crate::stateless_server::StatelessTemplateServer;
use std::sync::Arc;
pub struct CommandExecutor {
server: Arc<StatelessTemplateServer>,
registry: CommandRegistry,
}
#[derive(Default)]
pub struct CommandRegistry {
generate_handlers: GenerateCommandGroup,
analyze_handlers: AnalyzeCommandGroup,
utility_handlers: UtilityCommandGroup,
demo_handlers: DemoCommandGroup,
}
impl CommandExecutor {
#[must_use]
pub fn new(server: Arc<StatelessTemplateServer>) -> Self {
Self {
server,
registry: CommandRegistry::default(),
}
}
}