Lorsque vous implémentez un trait, le trait ou le type pour lequel vous l'implémentez doit être défini dans la même caisse. Dans votre exemple, ce n'est pas le cas :le trait Responder
est défini par nickel
, et Result
est défini par mongodb
.
La façon courante de contourner ce problème consiste à définir votre propre type, en enveloppant le type souhaité dans une structure de tuple avec un seul composant (le soi-disant modèle newtype ):
struct Result(mongodb::error::Result<Option<Document>>);
impl Responder for Result {
...