使用显式生存期时Rocket的状态错误“尝试检索非托管状态”?

问题描述 投票:0回答:1

当使用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避免安全检查,因为这编译好没有任何错误或警告。有任何想法吗?

rust rust-rocket
1个回答
0
投票

这似乎是实现所需结果的方法:

#[post("/foo")]
pub fn foo_handler<'a>(db: State<'a, Db>) {
  // ...
}

一个例子有助于Rocket的State文档。我希望上面的实现会抛出一个错误,因为它是有效的语法。

© www.soinside.com 2019 - 2024. All rights reserved.