aboutsummaryrefslogtreecommitdiff
path: root/docs/pages/7-argument-parse-clap.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/pages/7-argument-parse-clap.md')
-rw-r--r--docs/pages/7-argument-parse-clap.md27
1 files changed, 16 insertions, 11 deletions
diff --git a/docs/pages/7-argument-parse-clap.md b/docs/pages/7-argument-parse-clap.md
index e912c38..86fce35 100644
--- a/docs/pages/7-argument-parse-clap.md
+++ b/docs/pages/7-argument-parse-clap.md
@@ -25,7 +25,7 @@ Add `#[dispatcher_clap]` on a `clap::Parser` struct to auto-generate a Dispatche
// Dependencies:
// clap = "4"
@@@ use mingling::macros::dispatcher_clap;
-#[derive(Default, clap::Parser, Groupped)]
+#[derive(Default, clap::Parser, Grouped)]
#[dispatcher_clap("greet", CMDGreet, help = true, error = ErrorGreetParsed)]
pub struct EntryGreet {
#[clap(default_value = "World")]
@@ -35,18 +35,22 @@ pub struct EntryGreet {
}
#[renderer]
-fn render_greet(greet: EntryGreet) {
+fn render_greet(greet: EntryGreet) -> RenderResult {
+ let mut r = RenderResult::new();
let count = greet.repeat.max(0) as usize;
- r_print!("Hello, ");
+ write!(r, "Hello, ").ok();
for _ in 0..count {
- r_print!("{} ", greet.name);
+ write!(r, "{} ", greet.name).ok();
}
- r_println!("!");
+ writeln!(r, "!").ok();
+ r
}
#[renderer]
-fn render_greet_parse_failed(err: ErrorGreetParsed) {
- r_println!("{}", *err);
+fn render_greet_parse_failed(err: ErrorGreetParsed) -> RenderResult {
+ let mut r = RenderResult::new();
+ writeln!(r, "{}", *err).ok();
+ r
}
```
@@ -60,16 +64,17 @@ If you need `--help` support, register `BasicProgramSetup` in main and set the c
// clap = "4"
@@@use mingling::setup::BasicProgramSetup;
@@@use mingling::macros::dispatcher_clap;
-@@@#[derive(Default, clap::Parser, Groupped)]
+@@@#[derive(Default, clap::Parser, Grouped)]
@@@#[dispatcher_clap("greet", CMDGreet)]
@@@pub struct EntryGreet {
@@@ name: String,
@@@}
@@@#[renderer]
-@@@fn render_greet(greet: EntryGreet) {
-@@@ r_println!("Hello, {}!", greet.name);
+@@@fn render_greet(greet: EntryGreet) -> RenderResult {
+@@@ let mut r = RenderResult::new();
+@@@ write!(r, "Hello, {}!", greet.name).ok();
+@@@ r
@@@}
-@@@
fn main() {
let mut program = ThisProgram::new();
program.with_setup(BasicProgramSetup);