cargo_newcpp/
cpp_scafolding.rs

1use super::*;
2
3pub struct CPPProjectScafolding{
4    project_name: String,
5    is_library: bool,
6}
7
8type Result<T> = std::result::Result<T, Box<dyn std::error::Error>>;
9
10 impl CPPProjectScafolding{
11
12    pub fn new(project_name: &str, is_library: bool) -> CPPProjectScafolding{
13        Self{
14            project_name: String::from(project_name),
15            is_library,
16        }
17    }
18
19    pub fn generate_project_scafolding(&self) -> Result<()>  {
20        let _ = make_project_dir(&self.project_name);
21        make_project_dir(&format!("{}{}", self.project_name, "/src"))?;
22        make_project_dir(&format!("{}{}", self.project_name, "/include"))?;
23        make_project_dir(&format!("{}{}", self.project_name, "/tests"))?;
24        make_project_dir(&format!("{}{}", self.project_name, "/cmake"))?;
25        make_project_dir(&format!("{}{}", self.project_name, "/docs"))?;
26
27        let _ = make_defaults(&self.project_name, self.is_library);
28        Ok(())    
29    }
30
31 }