微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何解决actix-web的Form类型“serde::Deserialize的实现不够通用”的问题?

如何解决如何解决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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?