【发布时间】:2019-09-16 23:40:55
【问题描述】:
当使用 Rocket 的 State 并省略生命周期时,可以正常处理对路由的请求:
#[post("/foo")]
pub fn foo_handler(db: State<Db>) {
// ...
}
但是,如果提供了明确的生命周期,那么使用 Attempted to retrieve unmanaged state! 的请求会出现 Rocket 错误:
#[post("/foo")]
pub fn foo_handler<'a>(db: State<&'a Db>) {
// ...
}
编译器没有在此处提取某些内容,或者 Rocket 避免了安全检查,因为这样编译正常,没有任何错误或警告。有什么想法吗?
【问题讨论】:
-
我认为这些签名不同。
db: State<&'static Db>是做什么的? -
不,仍然是同样的错误并且编译时没有警告。
标签: rust rust-rocket