Skip to main content

cup_cli/plugin/
mod.rs

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
15/// 创建一个指定类型的插件实例
16pub 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}