Rust 我的守卫中的火箭使用状态失败,因为没有实现特征

Rust 我的守卫中的火箭使用状态失败,因为没有实现特征,rust,rust-rocket,Rust,Rust Rocket,我想在我的守卫中使用状态。我希望路由需要使用api密钥进行身份验证,我希望在我的Rocket.toml中定义api密钥。但运行此代码时,我会出现以下错误: 对于(状态,ApiKeyError) 对于这行代码让config\u state=try\u output!(要求防护::(&'r str); #[导出(调试)] 枚举ApiKeyError{ 丢失的 无效的 } #[火箭::异步特性] ApiKey的impl>()。等待); ///如果'key'是有效的API密钥字符串,则返回true。 f

我想在我的守卫中使用状态。我希望路由需要使用api密钥进行身份验证,我希望在我的
Rocket.toml
中定义api密钥。但运行此代码时,我会出现以下错误:

对于
(状态,ApiKeyError)

对于这行代码
让config\u state=try\u output!(要求防护::(&'r str);
#[导出(调试)]
枚举ApiKeyError{
丢失的
无效的
}
#[火箭::异步特性]
ApiKey的impl>()。等待);
///如果'key'是有效的API密钥字符串,则返回true。
fn是有效的(键:&str,api键:String)->bool{
key==api\u key
}
匹配请求头()。获取一个(“授权”){
无=>结果::失败((状态::未经授权,ApiKeyError::缺少)),
一些(键)如果是有效的(键,config_state.api_键)=>output::Success(ApiKey(键)),
某些()=>结果::失败((状态::未经授权,ApiKeyError::无效)),
}
}
}
#[获取(“/”)]
异步fn索引(配置:State)->&'static str{
“你好,世界!”
}
fn rocket()->rocket::rocket{
让火箭=火箭::点火();
设figment=rocket.figment();
让config:config=figment.extract().expect(“config”);
火箭
.mount(“/”,routes![索引])
.attach(临时::配置::())
}
#[火箭:主]
异步fn main(){
火箭
.launch()
.等待;
}

我已经用
AdHoch::config()
存储了配置,但要在guard中检索它,我需要使用
request.rocket().state::()
。更正后的源代码如下:

#[macro_use]外部板条箱火箭;
使用rocket::http::Status;
使用rocket::request::{output,request,FromRequest};
使用火箭::状态;
使用火箭::整流罩::临时;
使用serde::反序列化;
#[导出(反序列化)]
结构配置{
api_键:字符串,
}
ApiKey的结构ApiKey,key:ApiKey rocket::rocket{
让火箭=火箭::点火();
设figment=rocket.figment();
让config:config=figment.extract().expect(“config”);
火箭
.mount(“/”,routes![索引])
.attach(临时::配置::())
}
#[火箭:主]
异步fn main(){
火箭
.launch()
.等待;
}