如何解决如何解决actix-web的Form类型“serde::Deserialize的实现不够通用”的问题?
我正在使用 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 举报,一经查实,本站将立刻删除。