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-outside-type | |
| 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-outside-type')
| -rw-r--r-- | examples/example-outside-type/src/main.rs | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/examples/example-outside-type/src/main.rs b/examples/example-outside-type/src/main.rs index 7cf4d40..925878a 100644 --- a/examples/example-outside-type/src/main.rs +++ b/examples/example-outside-type/src/main.rs @@ -19,6 +19,7 @@ //! ``` use mingling::{macros::group, prelude::*}; +use std::io::Write; use std::{io::ErrorKind::Other, num::ParseIntError}; dispatcher!("parse"); @@ -61,8 +62,10 @@ fn parse_number(args: EntryParse) -> Next { // _____________ Using std::num::ParseIntError as a chain input // / #[renderer] // vvvvvvvvvvvv -fn render_number(num: ParsedNumber) { - r_println!("Parsed number: {}", *num); +fn render_number(num: ParsedNumber) -> RenderResult { + let mut render_result = RenderResult::new(); + write!(render_result, "Parsed number: {}", *num).ok(); + render_result } /// Renderer for parse errors — using the outside `ParseIntError` type. @@ -70,16 +73,20 @@ fn render_number(num: ParsedNumber) { /// The `ParseIntError` type is registered via `group!` above, so it implements /// `Groupped<ThisProgram>` and can be used directly in a `#[renderer]` function. #[renderer] -fn render_parse_error(err: ParseIntError) { - r_println!("Parse error: {}", err); +fn render_parse_error(err: ParseIntError) -> RenderResult { + let mut render_result = RenderResult::new(); + write!(render_result, "Parse error: {}", err).ok(); + render_result } /// Renderer for IO errors — using `std::io::Error` registered as `ErrorIo`. // ________ Must use alias `ErrorIo` here, not bare `std::io::Error` // / #[renderer] // vvvvvvv -fn render_error_io(err: ErrorIo) { - r_println!("IO_ERROR: {}", err.to_string()); +fn render_error_io(err: ErrorIo) -> RenderResult { + let mut render_result = RenderResult::new(); + write!(render_result, "IO_ERROR: {}", err).ok(); + render_result } fn main() { |
