diff options
Diffstat (limited to 'examples/example-clap-binding')
| -rw-r--r-- | examples/example-clap-binding/Cargo.lock | 10 | ||||
| -rw-r--r-- | examples/example-clap-binding/src/main.rs | 22 |
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!(); |
