Kiedy wdrażasz cechę, albo cecha, albo typ, dla którego ją wdrażasz, musi być zdefiniowany w tej samej skrzynce. W twoim przykładzie tak nie jest:cecha Responder
jest zdefiniowany przez nickel
i Result
jest zdefiniowany przez mongodb
.
Najczęstszym sposobem obejścia tego jest zdefiniowanie własnego typu poprzez zawinięcie żądanego typu w strukturę krotki z pojedynczym komponentem (tzw. wzorzec newtype ):
struct Result(mongodb::error::Result<Option<Document>>);
impl Responder for Result {
...