aboutsummaryrefslogtreecommitdiff
path: root/examples/example-argument-parse
diff options
context:
space:
mode:
Diffstat (limited to 'examples/example-argument-parse')
-rw-r--r--examples/example-argument-parse/Cargo.lock10
-rw-r--r--examples/example-argument-parse/src/main.rs15
2 files changed, 16 insertions, 9 deletions
diff --git a/examples/example-argument-parse/Cargo.lock b/examples/example-argument-parse/Cargo.lock
index a424789..696dcb6 100644
--- a/examples/example-argument-parse/Cargo.lock
+++ b/examples/example-argument-parse/Cargo.lock
@@ -11,13 +11,13 @@ dependencies = [
[[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",
@@ -26,14 +26,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-argument-parse/src/main.rs b/examples/example-argument-parse/src/main.rs
index 4929b7c..59499a2 100644
--- a/examples/example-argument-parse/src/main.rs
+++ b/examples/example-argument-parse/src/main.rs
@@ -19,6 +19,7 @@
//! ```
use mingling::{macros::route, prelude::*};
+use std::io::Write;
dispatcher!("transfer", CMDTransfer => EntryTransfer);
dispatcher!("strict-transfer", CMDStrictTransfer => EntryStrictTransfer);
@@ -71,20 +72,26 @@ fn handle_strict_transfer_parse(args: EntryStrictTransfer) -> Next {
/// Renders the parsed transfer result (file/dir, size, name).
#[renderer]
-fn render_result_file(result: ResultFile) {
+fn render_result_file(result: ResultFile) -> RenderResult {
let (is_dir, size, name) = result.into();
- r_println!(
+ let mut result = RenderResult::new();
+ writeln!(
+ result,
"{}: {} ({})",
if is_dir { "dir" } else { "file" },
name,
size
)
+ .ok();
+ result
}
/// Renders the error when no name is provided.
#[renderer]
-fn render_error_no_name_provided(_: ErrorNoNameProvided) {
- r_println!("Error: name is not provided")
+fn render_error_no_name_provided(_: ErrorNoNameProvided) -> RenderResult {
+ let mut result = RenderResult::new();
+ writeln!(result, "Error: name is not provided").ok();
+ result
}
gen_program!();