当使用具有省略生命周期的 Rocket 时State
,可以正常处理对路由的请求:
#[post("/foo")]
pub fn foo_handler(db: State<Db>) {
// ...
}
但是,如果提供了明确的生命周期,那么 Rocket 会在请求中出错Attempted to retrieve unmanaged state!
:
#[post("/foo")]
pub fn foo_handler<'a>(db: State<&'a Db>) {
// ...
}
编译器没有在这里找到一些东西,或者 Rocket 避免了安全检查,因为它编译正常,没有任何错误或警告。有任何想法吗?