aboutsummaryrefslogtreecommitdiff
path: root/docs/pages/6-argument-parse-picker.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/pages/6-argument-parse-picker.md')
-rw-r--r--docs/pages/6-argument-parse-picker.md38
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
}
```