¿Cómo escribir un rasgo vinculado para una referencia a un tipo asociado en el rasgo mismo?
Tengo este código:
extern crate serde;
use serde::de::DeserializeOwned;
use serde::Serialize;
trait Bar<'a, T: 'a>
where
T: Serialize,
&'a T: DeserializeOwned,
{
}
Me gustaría escribir esto usando un tipo asociado, porque el tipoT
no es importante para los usuarios de este tipo. Llegué hasta aquí:
trait Bar {
type T: Serialize;
}
No puedo entender cómo especificar el otro límite.
n última instancia, quiero usar una función como esta:
extern crate serde_json;
fn test<I: Bar>(t: I::T) -> String {
serde_json::to_string(&t).unwrap()
}