【发布时间】:2015-11-18 14:08:00
【问题描述】:
我无法确定此代码的生命周期参数。我尝试的一切通常都会导致编译器错误:“预期绑定的生命周期参数'a,找到具体的生命周期”或类似“考虑使用所示的显式生命周期参数”(并且显示的示例没有帮助)或“方法不与特质兼容”。
Request、Response 和 Action 是简化版本,以尽量减少此示例。
struct Request {
data: String,
}
struct Response<'a> {
data: &'a str,
}
pub enum Action<'a> {
Next(Response<'a>),
Done,
}
pub trait Handler: Send + Sync {
fn handle<'a>(&self, req: Request, res: Response<'a>) -> Action<'a>;
}
impl<'a, T> Handler for T
where
T: Send + Sync + Fn(Request, Response<'a>) -> Action<'a>,
{
fn handle(&self, req: Request, res: Response<'a>) -> Action<'a> {
(*self)(req, res)
}
}
fn main() {
println!("running");
}
【问题讨论】:
标签: rust