Fornecendo uma implementação quando a característica e o tipo não estiverem neste caixote [duplicado]

Esta pergunta já tem uma resposta aqui:

Como implementar uma característica que não possuo para um tipo que não possuo? 2 respostas

Eu quero fornecer uma implementação de uma característicaToHex (não definido por mim, deserialize) para um tipo primitivou8:

impl ToHex for u8 {
    fn to_hex(&self) -> String {
        self.to_str_radix(16)
    }
}

O problema é que recebo este erro do compilador:

error: cannot provide an extension implementation where both trait and type are not defined in this crate

Eu entendo o motivo desse erro e sua lógica, isso ocorre porque o traço e o tipo primitivo são externos ao meu código. Mas como posso lidar com essa situação e fornecer umaToHex implementação parau8? E, de maneira mais geral, como você lida com esse tipo de problema, parece-me que esse problema deve ser comum e deve ser possível e fácil estender tipos como esse?

questionAnswers(2)

yourAnswerToTheQuestion