blob: b90c618358e81f81453fbf49a2b64cecf4e8ba35 (
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
27
28
|
use crate::Next;
use mingling::prelude::*;
use std::io::Write;
dispatcher!("greet", EntryGreet);
#[derive(Grouped, Wrap)]
pub struct ResultName(String);
#[chain]
pub fn handle_greet(args: EntryGreet) -> Next {
let name: ResultName = args
.0
.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
}
|