diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-07-11 15:15:12 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-07-11 15:21:40 +0800 |
| commit | 95815041fe2817b4b6bdba6b4f332c90320af7bb (patch) | |
| tree | 224f3479eca9e44caa247132ecab42f8825b167c /examples/example-exitcode/src/main.rs | |
| parent | 356879cfd6149bdb235b4e02c0f351a4d2246202 (diff) | |
refactor(examples): migrate renderers to return RenderResult and add
std::io::Write import
Replace r_println!/r_print! macro usage across all example renderers
with
explicit RenderResult construction using std::io::Write, enabling more
flexible output handling and reducing reliance on macro-side effects.
Diffstat (limited to 'examples/example-exitcode/src/main.rs')
| -rw-r--r-- | examples/example-exitcode/src/main.rs | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/examples/example-exitcode/src/main.rs b/examples/example-exitcode/src/main.rs index b0b7467..6b22eae 100644 --- a/examples/example-exitcode/src/main.rs +++ b/examples/example-exitcode/src/main.rs @@ -20,6 +20,7 @@ use mingling::{ res::ResExitCode, setup::{BasicProgramSetup, ExitCodeSetup}, }; +use std::io::Write; fn main() { let mut program = ThisProgram::new(); @@ -52,25 +53,32 @@ fn handle_hello(args: EntryHello) -> Next { /// Renders a successful greeting with the given name. #[renderer] -fn render_result_name(name: ResultName) { - r_println!("Hello, {}", *name); +fn render_result_name(name: ResultName) -> RenderResult { + let mut result = RenderResult::new(); + writeln!(result, "Hello, {}", *name).ok(); + result } #[help] -fn help_hello(_p: EntryHello, ec: &mut ResExitCode) { - r_println!("Usage: hello <NAME>"); +fn help_hello(_p: EntryHello, ec: &mut ResExitCode) -> RenderResult { + let mut result = RenderResult::new(); + writeln!(result, "Usage: hello <NAME>").ok(); ec.exit_code = 2; + result } // Define renderer, render error message _______________ Inject exit code resource // / /// Renders the error when no name is provided | #[renderer] // vvvvvvvvvvvvvvvv -fn render_error_no_name_provided(_: ErrorNoNameProvided, ec: &mut ResExitCode) { +fn render_error_no_name_provided(_: ErrorNoNameProvided, ec: &mut ResExitCode) -> RenderResult { ec.exit_code = 1; + let mut result = RenderResult::new(); + // Prompt when no name is provided - r_println!("No name provided (with exit code 1)"); + writeln!(result, "No name provided (with exit code 1)").ok(); + result } gen_program!(); |
