【发布时间】:2018-07-22 23:36:26
【问题描述】:
我希望我的特质依赖于 Serde:
pub trait MyTrait: Serialize + DeserializeOwned {}
#[derive(Serialize, Deserialize)]
pub struct MyStruct<T: MyTrait> {
value: T,
}
impl MyTrait for i32 {}
impl MyTrait for MyStruct<i32> {}
但我收到此错误:
error[E0283]: type annotations required: cannot resolve `T: serde::Deserialize<'de>`
--> src/main.rs:11:21
|
11 | #[derive(Serialize, Deserialize)]
| ^^^^^^^^^^^
|
= note: required by `serde::Deserialize`
我不知道在这种情况下这意味着什么。我不明白它与info about E0283 有何关系。
(我认为 DeserializeOwned 是我想要的基于Serde lifetimes info 的东西,但我找不到任何关于“扩展”特征的东西,所以我可能错了)。
【问题讨论】: