blob: 8cbc1c52a0723bea29590dc7626e088d3c166980 (
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.into()
}
/// 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
}
|