actr_cli/commands/initialize/
traits.rs

1use crate::{error::Result, template::ProjectTemplateName};
2use std::path::PathBuf;
3
4/// Context for non-Rust project initialization.
5#[derive(Debug, Clone)]
6pub struct InitContext {
7    pub project_dir: PathBuf,
8    pub project_name: String,
9    pub signaling_url: String,
10    pub template: ProjectTemplateName,
11    pub is_current_dir: bool,
12}
13
14/// Interface for language-specific project initialization.
15pub trait ProjectInitializer: Send + Sync {
16    fn generate_project_structure(&self, context: &InitContext) -> Result<()>;
17    fn print_next_steps(&self, context: &InitContext);
18}