refactor: make only top level codegen is public and CodeGen private

This commit is contained in:
Wataru Otsubo 2025-02-06 18:54:11 +09:00
parent 472723016c
commit a6c56ef9d6
2 changed files with 10 additions and 4 deletions

View file

@ -120,7 +120,13 @@ mod util {
} }
} }
pub trait CodeGen { impl Module {
pub fn generate_code(self) -> Result<HashMap<path::PathBuf, proc_macro2::TokenStream>, CodeGenError> {
self.generate_register_interface(None, None, HashMap::new())
}
}
trait CodeGen {
/// `parent_name` in UpperCamelCase. /// `parent_name` in UpperCamelCase.
fn generate_register_interface( fn generate_register_interface(
self, self,

View file

@ -1,9 +1,9 @@
use std::fs::DirBuilder; use std::fs::DirBuilder;
use std::io::Write; use std::io::Write;
use std::{collections::HashMap, fs, io::BufWriter}; use std::{fs, io::BufWriter};
use anyhow::{anyhow, Context, Result}; use anyhow::{anyhow, Context, Result};
use endcap_sl_software_ri_generator::{generator::CodeGen, types}; use endcap_sl_software_ri_generator::types;
use itertools::Itertools; use itertools::Itertools;
fn main() -> Result<()> { fn main() -> Result<()> {
@ -26,7 +26,7 @@ fn main() -> Result<()> {
println!("==========================================="); println!("===========================================");
let files = register_map.generate_register_interface(None, None, HashMap::new())?; let files = register_map.generate_code()?;
// println!("{:#?}", files); // println!("{:#?}", files);
for filepath in files.keys().sorted() { for filepath in files.keys().sorted() {
println!("{}", filepath.display()); println!("{}", filepath.display());