У меня есть этот код:
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()
}