| Crates.io | baobao-codegen |
| lib.rs | baobao-codegen |
| version | 0.5.0 |
| created_at | 2025-12-08 17:49:15.500696+00 |
| updated_at | 2025-12-24 15:35:11.351458+00 |
| description | Shared code generation utilities for Bao CLI generator |
| homepage | https://github.com/roushou/bao |
| repository | https://github.com/roushou/bao |
| max_upload_size | |
| id | 1974132 |
| size | 239,130 |
Shared code generation utilities for Bao CLI generator.
This crate provides language-agnostic abstractions and utilities used by language-specific code generators (e.g., baobao-codegen-rust, baobao-codegen-typescript).
CodeBuilder, FileBuilder)CommandTree, FlatCommand)DependencyCollector, ImportCollector)NamingConvention)LanguageCodegen, TypeMapper)This crate is used by language-specific code generators. You typically don't need to use it directly unless you're implementing a new language generator.
use baobao_codegen::{LanguageCodegen, PreviewFile, GenerateResult};
use baobao_codegen::{CodeBuilder, FileBuilder, CommandTree};
// Implement LanguageCodegen for a new language
impl LanguageCodegen for MyGenerator {
fn preview(&self) -> Vec<PreviewFile> {
// Return files that would be generated
}
fn generate(&self, output: &Path) -> eyre::Result<GenerateResult> {
// Generate files to disk
}
}
Enable the testing feature for test utilities:
[dev-dependencies]
baobao-codegen = { version = "0.3", features = ["testing"] }
This project is licensed under the MIT license.