blob: 6d159300e92adf7bf6f837a767274b820c2e66bb (
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
26
|
use crate::Next;
use mingling::prelude::*;
use std::io::Write;
dispatcher!("greet", CMDGreet => EntryGreet);
pack!(ResultName = String);
#[chain]
pub fn handle_greet(args: EntryGreet) -> Next {
let name: ResultName = args
.inner
.first()
.cloned()
.unwrap_or_else(|| "World".to_string())
.into();
name
}
/// Renders the name.
#[renderer]
// But renderers cannot use the `async` keyword
pub fn render_name(name: ResultName) -> RenderResult {
let mut render_result = RenderResult::new();
writeln!(render_result, "Hello, {}!", *name).ok();
render_result
}
|