cargo_newcpp/
cpp_scafolding.rs1use 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 }