aboutsummaryrefslogtreecommitdiff
path: root/examples/example-outside-type/src/main.rs
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-07-11 15:15:12 +0800
committer魏曹先生 <1992414357@qq.com>2026-07-11 15:21:40 +0800
commit95815041fe2817b4b6bdba6b4f332c90320af7bb (patch)
tree224f3479eca9e44caa247132ecab42f8825b167c /examples/example-outside-type/src/main.rs
parent356879cfd6149bdb235b4e02c0f351a4d2246202 (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/src/main.rs')
-rw-r--r--examples/example-outside-type/src/main.rs19
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() {