Skip to main content

doido_generators/
lib.rs

1mod banner;
2mod cli;
3pub mod commands;
4pub mod dev_workspace;
5pub mod generator;
6pub mod generators;
7pub mod new_options;
8pub mod project_generator;
9pub mod registry;
10pub mod templates;
11
12// CLI entry point (merged in from the former `doido-cli` crate).
13pub use cli::run;
14
15pub use dev_workspace::DependencyMode;
16
17/// The Doido release version generated apps depend on when this binary is
18/// isolated or published. Matches `CARGO_PKG_VERSION` of this crate.
19pub const DOIDO_VERSION: &str = env!("CARGO_PKG_VERSION");
20
21pub use generator::{GeneratedFile, Generator};
22pub use generators::{
23    channel::ChannelGenerator, controller::ControllerGenerator, generator_gen::GeneratorGenerator,
24    job::JobGenerator, mailer::MailerGenerator, migration::MigrationGenerator,
25    model::ModelGenerator, new::ProjectGenerator, resource::ResourceGenerator,
26    scaffold::ScaffoldGenerator, storage_adapter::StorageAdapterGenerator,
27    storage_install::StorageInstallGenerator, templates_gen::TemplatesGenerator,
28};
29pub use registry::GeneratorRegistry;
30
31pub fn default_registry() -> GeneratorRegistry {
32    let mut reg = GeneratorRegistry::new();
33    reg.register(Box::new(ControllerGenerator));
34    reg.register(Box::new(ModelGenerator));
35    reg.register(Box::new(MigrationGenerator));
36    reg.register(Box::new(JobGenerator));
37    reg.register(Box::new(MailerGenerator));
38    reg.register(Box::new(ChannelGenerator));
39    reg.register(Box::new(ScaffoldGenerator));
40    reg.register(Box::new(ResourceGenerator));
41    reg.register(Box::new(StorageInstallGenerator));
42    reg.register(Box::new(StorageAdapterGenerator));
43    reg.register(Box::new(ProjectGenerator));
44    reg.register(Box::new(TemplatesGenerator));
45    reg.register(Box::new(GeneratorGenerator));
46    reg.register(Box::new(crate::generators::locale::LocaleGenerator));
47    reg
48}