diff options
Diffstat (limited to 'docs/pages/6-argument-parse-picker.md')
| -rw-r--r-- | docs/pages/6-argument-parse-picker.md | 38 |
1 files changed, 25 insertions, 13 deletions
diff --git a/docs/pages/6-argument-parse-picker.md b/docs/pages/6-argument-parse-picker.md index 7e91af8..c80c25c 100644 --- a/docs/pages/6-argument-parse-picker.md +++ b/docs/pages/6-argument-parse-picker.md @@ -156,13 +156,17 @@ fn handle_greet_entry(prev: EntryGreet) -> Next { } #[renderer] -fn render_no_name(_prev: ErrorNoName) { - r_println!("Error: No name provided."); +fn render_no_name(_prev: ErrorNoName) -> RenderResult { + let mut r = RenderResult::new(); + writeln!(r, "Error: No name provided.").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 } ``` @@ -251,14 +255,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 +323,7 @@ Implement the `Pickable` trait to make your type parseable by `Picker` — this // Features: ["parser"] @@@use mingling::parser::{Pickable, Argument}; @@@use mingling::Flag; -#[derive(Default)] +#[derive(Default, Clone)] pub struct Address { ip: String, port: u16, @@ -341,9 +349,11 @@ fn handle_connect_entry(prev: EntryConnect) -> Next { } #[renderer] -fn render_connected(prev: ResultConnected) { +fn render_connected(prev: ResultConnected) -> RenderResult { + let mut r = RenderResult::new(); let addr = prev.inner; - r_println!("Connected: IP: {} PORT: {}", addr.ip, addr.port); + writeln!(r, "Connected: IP: {} PORT: {}", addr.ip, addr.port).ok(); + r } ``` @@ -381,8 +391,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 } ``` |
