我有这个代码:
extern crate serde;
use serde::de::DeserializeOwned;
use serde::Serialize;
trait Bar<'a, T: 'a>
where
T: Serialize,
&'a T: DeserializeOwned,
{
}
我想使用关联类型来编写它,因为该类型T
对这种类型的用户来说并不重要。我做到了这一点:
trait Bar {
type T: Serialize;
}
我不知道如何指定另一个界限。
最终,我想使用这样的功能:
extern crate serde_json;
fn test<I: Bar>(t: I::T) -> String {
serde_json::to_string(&t).unwrap()
}