1mod dll;
2mod exe;
3mod hdr;
4mod lib;
5mod plugin;
6
7pub use dll::Shared;
8pub use exe::Executable;
9pub use hdr::HeaderOnly;
10pub use lib::Static;
11pub use plugin::Module;
12
13use crate::cli::{CreateProject, TemplateType};
14
15pub fn create_instance(ty: TemplateType) -> Box<dyn CreateProject> {
17 match ty {
18 TemplateType::Executable => Box::new(Executable::default()),
19 TemplateType::Static => Box::new(Static::default()),
20 TemplateType::Shared => Box::new(Shared::default()),
21 TemplateType::Module => Box::new(Module::default()),
22 TemplateType::HeaderOnly => Box::new(HeaderOnly::default()),
23 }
24}