Como escrever uma característica vinculada a uma referência a um tipo associado na própria característica?

Eu tenho este código:

extern crate serde;

use serde::de::DeserializeOwned;
use serde::Serialize;

trait Bar<'a, T: 'a>
where
    T: Serialize,
    &'a T: DeserializeOwned,
{
}

Eu gostaria de escrever isso usando um tipo associado, porque o tipoT não é importante para os usuários desse tipo. Cheguei até aqui:

trait Bar {
    type T: Serialize;
}

Não consigo descobrir como especificar o outro limite.

Por fim, quero usar uma função como esta:

extern crate serde_json;

fn test<I: Bar>(t: I::T) -> String {
    serde_json::to_string(&t).unwrap()
}

questionAnswers(1)

yourAnswerToTheQuestion