aboutsummaryrefslogtreecommitdiff
path: root/examples/example-clap-binding
diff options
context:
space:
mode:
Diffstat (limited to 'examples/example-clap-binding')
-rw-r--r--examples/example-clap-binding/Cargo.lock10
-rw-r--r--examples/example-clap-binding/src/main.rs22
2 files changed, 19 insertions, 13 deletions
diff --git a/examples/example-clap-binding/Cargo.lock b/examples/example-clap-binding/Cargo.lock
index 63c5940..b747c40 100644
--- a/examples/example-clap-binding/Cargo.lock
+++ b/examples/example-clap-binding/Cargo.lock
@@ -120,13 +120,13 @@ checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695"
[[package]]
name = "just_fmt"
-version = "0.1.2"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5454cda0d57db59778608d7a47bff5b16c6705598265869fb052b657f66cf05e"
+checksum = "6170dccbc3ea15dfb7f2da964097f814aba1dd8f746d4ffc56f33245c38e6d96"
[[package]]
name = "mingling"
-version = "0.2.0"
+version = "0.3.0"
dependencies = [
"mingling_core",
"mingling_macros",
@@ -134,14 +134,14 @@ dependencies = [
[[package]]
name = "mingling_core"
-version = "0.2.0"
+version = "0.3.0"
dependencies = [
"just_fmt",
]
[[package]]
name = "mingling_macros"
-version = "0.2.0"
+version = "0.3.0"
dependencies = [
"just_fmt",
"proc-macro2",
diff --git a/examples/example-clap-binding/src/main.rs b/examples/example-clap-binding/src/main.rs
index 19d794b..d99f8d1 100644
--- a/examples/example-clap-binding/src/main.rs
+++ b/examples/example-clap-binding/src/main.rs
@@ -38,7 +38,8 @@
//! For more information, try '--help'.
//! ```
-use mingling::{macros::dispatcher_clap, prelude::*, setup::BasicProgramSetup, Groupped};
+use mingling::{Groupped, macros::dispatcher_clap, prelude::*, setup::BasicProgramSetup};
+use std::io::Write;
fn main() {
let mut program = ThisProgram::new();
@@ -89,24 +90,29 @@ pub struct EntryGreet {
/// Renders the greet output with optional repetition.
#[renderer]
-fn render_greet(greet: EntryGreet) {
+fn render_greet(greet: EntryGreet) -> RenderResult {
let name = greet.name;
let count = greet.repeat.max(0) as usize;
- r_print!("Hello, ");
+ let mut render_result = RenderResult::default();
+ write!(render_result, "Hello, ").ok();
for i in 0..count {
- r_print!("{name}");
+ write!(render_result, "{name}").ok();
if i < count - 1 {
- r_print!(", ");
+ write!(render_result, ", ").ok();
}
}
- r_println!("!");
+ writeln!(render_result, "!").ok();
+ render_result
}
/// Renders the error message when greet argument parsing fails.
#[renderer]
-fn render_greet_parse_failed(err: ErrorGreetParsed) {
- r_println!("{}", *err);
+// renderers can return a RenderResult instead of using r_println!
+pub fn render_greet_parse_failed(err: ErrorGreetParsed) -> RenderResult {
+ let mut render_result = RenderResult::default();
+ writeln!(render_result, "{}", *err).ok();
+ render_result
}
gen_program!();