diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-07-11 16:03:20 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-07-11 16:03:20 +0800 |
| commit | 810536fb1f068f969af316be0450a1edacfe8e28 (patch) | |
| tree | ece6a67f196afda364d4443e17687c2076e132c4 /docs/_zh_CN/pages/6-argument-parse-picker.md | |
| parent | 4bf23c20f2d7cdfcc988b654a93abae1cd211ad8 (diff) | |
docs: migrate renderers from `r_println!` to `RenderResult` return type
Diffstat (limited to 'docs/_zh_CN/pages/6-argument-parse-picker.md')
| -rw-r--r-- | docs/_zh_CN/pages/6-argument-parse-picker.md | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/docs/_zh_CN/pages/6-argument-parse-picker.md b/docs/_zh_CN/pages/6-argument-parse-picker.md index 9c7e028..b41f839 100644 --- a/docs/_zh_CN/pages/6-argument-parse-picker.md +++ b/docs/_zh_CN/pages/6-argument-parse-picker.md @@ -156,13 +156,10 @@ fn handle_greet_entry(prev: EntryGreet) -> Next { } #[renderer] -fn render_no_name(_prev: ErrorNoName) { - r_println!("Error: No name provided."); -} - -#[renderer] -fn render_name(prev: ResultName) { - r_println!("Hello, {}!", *prev); +fn render_greet(result: ResultName) -> RenderResult { + let mut r = RenderResult::new(); + writeln!(r, "Hello, {}!", *result).ok(); + r } ``` @@ -251,14 +248,18 @@ fn handle_greet_entry(prev: EntryGreet) -> Next { } #[renderer] -fn render_name_too_long(prev: ErrorNameTooLong) { +fn render_name_too_long(prev: ErrorNameTooLong) -> RenderResult { + let mut r = RenderResult::new(); let len = *prev; - r_println!("Error: name too long (length: {} > 32)", len); + writeln!(r, "Error: name too long (length: {} > 32)", len).ok(); + r } #[renderer] -fn render_name(prev: ResultName) { - r_println!("Hello, {}!", *prev); +fn render_name(prev: ResultName) -> RenderResult { + let mut r = RenderResult::new(); + writeln!(r, "Hello, {}!", *prev).ok(); + r } ``` @@ -315,7 +316,7 @@ fn parse_size() { // Features: ["parser"] @@@use mingling::parser::{Pickable, Argument}; @@@use mingling::Flag; -#[derive(Default)] +#[derive(Default, Clone)] pub struct Address { ip: String, port: u16, @@ -341,9 +342,10 @@ fn handle_connect_entry(prev: EntryConnect) -> Next { } #[renderer] -fn render_connected(prev: ResultConnected) { - let addr = prev.inner; - r_println!("Connected: IP: {} PORT: {}", addr.ip, addr.port); +fn render_connected(addr: ResultConnected) -> RenderResult { + let mut r = RenderResult::new(); + writeln!(r, "Connected: IP: {} PORT: {}", addr.ip, addr.port).ok(); + r } ``` @@ -381,8 +383,10 @@ fn handle_eat_entry(prev: EntryEat) -> Next { } #[renderer] -fn render_fruit(prev: ResultFruit) { - r_println!("Picked fruit: {:?}", *prev); +fn render_fruit(prev: ResultFruit) -> RenderResult { + let mut r = RenderResult::new(); + writeln!(r, "Picked fruit: {:?}", *prev).ok(); + r } ``` |
