summaryrefslogtreecommitdiff
path: root/mingling
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-04-01 16:48:10 +0800
committer魏曹先生 <1992414357@qq.com>2026-04-01 16:48:10 +0800
commit2439ce3c304918d91113948c32cd3fd8f6e5db5c (patch)
treea42faa8ba6d90163834899019ad3785f8adac66b /mingling
parent2a841ecd57d1d3d1c187f220c599164a2c6fc1cc (diff)
Update example code in README files
Diffstat (limited to 'mingling')
-rw-r--r--mingling/README.md26
1 files changed, 17 insertions, 9 deletions
diff --git a/mingling/README.md b/mingling/README.md
index 08434ba..e4bb725 100644
--- a/mingling/README.md
+++ b/mingling/README.md
@@ -11,31 +11,39 @@
The example below shows how to use `Mingling` to create a simple command-line program:
```rust
-use mingling::{
- hint::NoDispatcherFound,
- macros::{dispatcher, program, r_println, renderer},
-};
+use mingling::macros::{dispatcher, gen_program, r_println, renderer};
#[tokio::main]
async fn main() {
- let mut program = MyProgram::new();
+ let mut program = DefaultProgram::new();
program.with_dispatcher(HelloCommand);
+
+ // Execute
program.exec().await;
}
+// Define command: "<bin> hello"
dispatcher!("hello", HelloCommand => HelloEntry);
+// Render HelloEntry
#[renderer]
-pub fn render_hello(_prev: HelloEntry) {
+fn render_hello_world(_prev: HelloEntry) {
r_println!("Hello, World!")
}
+// Fallbacks
+#[renderer]
+fn fallback_dispatcher_not_found(prev: DispatcherNotFound) {
+ r_println!("Dispatcher not found for command `{}`", prev.join(", "))
+}
+
#[renderer]
-pub fn render_no_dispatcher_found(prev: NoDispatcherFound) {
- r_println!("Subcommand not found: '{}'", prev.args.join(", "))
+fn fallback_renderer_not_found(prev: RendererNotFound) {
+ r_println!("Renderer not found `{}`", *prev)
}
-program!(MyProgram);
+// Collect renderers and chains to generate DefaultProgram
+gen_program!();
```
Output: