У Warp есть такая парадигма,
let hi = warp::path("hello")
.and(warp::path::param())
.and(warp::header("user-agent"))
.map(|param: String, agent: String| {
format!("Hello {}, whose agent is {}", param, agent)
});
Эти фильтры предоставляют .map()
, который позволяет вам вызывать закрытие с извлеченным значением (вывод из предыдущего фильтра).
Как мне действовать в рамках этой парадигмы, если в приведенном выше примере я хочу сделать что-то вроде этого,
.map(async |param: String, agent: String| {
foo(¶m).await?;
format!("Hello {}, whose agent is {}", ¶m, agent)
});
Когда я использую асинхронные функции в закрытии .map
фильтра, я получаю эту ошибку,
ошибка [E0708]:
async
неmove
замыкания с параметрами в настоящее время не поддерживаются
Есть ли способ сделать warp
совместимым с библиотекой, которая уже является асинхронной?