aboutsummaryrefslogtreecommitdiff
path: root/mling/src/proj_mgr/generator.rs
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-07-11 14:44:17 +0800
committer魏曹先生 <1992414357@qq.com>2026-07-11 14:44:17 +0800
commitc5736152b0adeef17349265c4b9277ba17b8bcfd (patch)
treea5a5227ef4ca20ec09d1c8cf0655e9f9f33e03b6 /mling/src/proj_mgr/generator.rs
parentc08b2d608abe134e37bc4dee7df2113fac968e06 (diff)
feat: require renderers to return RenderResult instead of mutating one
BREAKING CHANGE: The `render` method on `Renderer`, `HelpRequest`, and `ProgramCollect` now returns `RenderResult` instead of taking `&mut RenderResult`. The `r_print!` and `r_println!` macros have been removed in favor of using `std::io::Write` directly on `RenderResult`.
Diffstat (limited to 'mling/src/proj_mgr/generator.rs')
-rw-r--r--mling/src/proj_mgr/generator.rs27
1 files changed, 19 insertions, 8 deletions
diff --git a/mling/src/proj_mgr/generator.rs b/mling/src/proj_mgr/generator.rs
index 48a1753..e560ae0 100644
--- a/mling/src/proj_mgr/generator.rs
+++ b/mling/src/proj_mgr/generator.rs
@@ -1,11 +1,12 @@
use std::path::{self, PathBuf};
use mingling::{
- Groupped,
- macros::{chain, pack, r_println, renderer, route},
+ macros::{chain, pack, renderer, route},
+ Groupped, RenderResult,
};
+use std::io::Write as _;
-use crate::{Next, proj_mgr::EntryGenerateProject, res::ResCurrentDir};
+use crate::{proj_mgr::EntryGenerateProject, res::ResCurrentDir, Next};
pack!(StateGenerateProjectReady = PathBuf);
pack!(ResultGenerateProjectChecklistCreated = PathBuf);
@@ -35,12 +36,22 @@ pub fn handle_state_gen_proj_ready(prev: StateGenerateProjectReady) -> Next {
}
#[renderer]
-pub fn render_gen_proj_checklist_created(result: ResultGenerateProjectChecklistCreated) {
- r_println!(
+pub fn render_gen_proj_checklist_created(
+ result: ResultGenerateProjectChecklistCreated,
+) -> RenderResult {
+ let mut res = RenderResult::default();
+ writeln!(
+ res,
"Successfully create {} at \"{}\"",
CHECK_LIST_NAME,
result.to_string_lossy()
- );
- r_println!("");
- r_println!("Please fill in {CHECK_LIST_NAME} and run `mling gen` again to continue generating");
+ )
+ .ok();
+ writeln!(res).ok();
+ writeln!(
+ res,
+ "Please fill in {CHECK_LIST_NAME} and run `mling gen` again to continue generating"
+ )
+ .ok();
+ res
}