如何将具有非静态生命周期的对象传递给 Rocket 的manage
?目前我有这些方面的东西:
fn foo<'a>(bar: Bar<'a>) -> Result<(), Error> {
rocket::ignite()
.manage(bar)
.mount("/", routes![index])
.launch();
Ok(())
}
但我收到以下错误:
cannot infer an appropriate lifetime due to conflicting requirements
note: ...so that the expression is assignable:
expected bar::Bar<'_>
found bar::Bar<'a>
note: but, the lifetime must be valid for the static lifetime...
为了添加更多上下文,Bar
是一个struct
包含使用运行时参数初始化的盒装闭包。args 包含密码、密钥和机密等内容 - 实际代码是开源的,因此可以在此处找到。它是 WIP,因此会发生变化,并且不完全是最新的,但希望为最终目标提供一个想法。