aboutsummaryrefslogtreecommitdiff
path: root/examples/example-combine-pathf-dispatch-tree/src/sub/mod.rs
blob: 5ab0ece521c5fc1242fad42ddaee3cc9106cb78c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
use crate::Next;
use mingling::prelude::*;
use std::io::Write;

dispatcher!("hello");

pack!(ResultMessage = String);

#[chain]
pub fn handle_my(args: EntryHello) -> Next {
    let name: ResultMessage = args
        .inner
        .first()
        .cloned()
        .unwrap_or_else(|| "World".to_string())
        .into();
    name
}

#[renderer]
pub fn render_my(msg: ResultMessage) -> RenderResult {
    let mut render_result = RenderResult::new();
    writeln!(render_result, "Hello, {}!", *msg).ok();
    render_result
}