Skip to main content

doido_generators/
lib.rs

1mod banner;
2mod cli;
3pub mod commands;
4pub mod generator;
5pub mod generators;
6pub mod project_generator;
7pub mod registry;
8pub mod templates;
9
10// CLI entry point (merged in from the former `doido-cli` crate).
11pub use cli::run;
12
13/// Absolute path to the doido workspace root, captured when `doido-generators`
14/// was built. Generated apps point their `doido-*` path dependencies here so a
15/// freshly generated app builds against the local framework crates.
16pub const TEMPLATE_WORKSPACE_PATH: &str = env!("DOIDO_GENERATOR_TEMPLATE_WORKSPACE_PATH");
17
18pub use generator::{GeneratedFile, Generator};
19pub use generators::{
20    channel::ChannelGenerator, controller::ControllerGenerator, generator_gen::GeneratorGenerator,
21    job::JobGenerator, mailer::MailerGenerator, migration::MigrationGenerator,
22    model::ModelGenerator, new::ProjectGenerator, scaffold::ScaffoldGenerator,
23    templates_gen::TemplatesGenerator,
24};
25pub use registry::GeneratorRegistry;
26
27pub fn default_registry() -> GeneratorRegistry {
28    let mut reg = GeneratorRegistry::new();
29    reg.register(Box::new(ControllerGenerator));
30    reg.register(Box::new(ModelGenerator));
31    reg.register(Box::new(MigrationGenerator));
32    reg.register(Box::new(JobGenerator));
33    reg.register(Box::new(MailerGenerator));
34    reg.register(Box::new(ChannelGenerator));
35    reg.register(Box::new(ScaffoldGenerator));
36    reg.register(Box::new(ProjectGenerator));
37    reg.register(Box::new(TemplatesGenerator));
38    reg.register(Box::new(GeneratorGenerator));
39    reg
40}