问题描述
我正在使用 actix-web
构建网络服务器。我的一个端点尝试将传入的数据反序列化为表单结构:
#[get("/tweets4")]
async fn tweets4(form: web::Form<TweetParams<'_>>) -> HttpResponse {
println!("{} {} {}",form.page,form.sort_by,form.timeframe);
HttpResponse::Ok().body("worked")
}
#[derive(serde::Deserialize,serde::Serialize,Debug)]
struct TweetParams<'a> {
page: &'a str,sort_by: &'a str,timeframe: &'a str,}
我得到的错误:
error: implementation of `_::_serde::Deserialize` is not general enough
--> src/main.rs:82:1
|
82 | #[get("/tweets4")]
| ^^^^^^^^^^^^^^^^^^ implementation of `_::_serde::Deserialize` is not general enough
|
= note: `TweetParams<'_>` must implement `_::_serde::Deserialize<'0>`,for any lifetime `'0`...
= note: ...but `TweetParams<'_>` actually implements `_::_serde::Deserialize<'1>`,for some specific lifetime `'1`
= note: this error originates in an attribute macro (in Nightly builds,run with -Z macro-backtrace for more info)
我对破译错误及其可能意味着什么感到非常困惑。听起来编译器对 Serde 的开箱即用 Deserialize
实现不满意 - 但我该如何解决?
当我从结构内的 &str
切换到 String
时出现此错误。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)