Обеспечение реализации, когда в этом ящике нет ни черты, ни черты [duplicate]

На этот вопрос уже есть ответ здесь:

Как реализовать черту, которой я не владею, для типа, которым я не владею? 2 ответа

Я хочу обеспечить реализацию чертыToHex (не определено мной, отserialize) для примитивного типаu8:

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

Проблема в том, что я получаю эту ошибку компилятора:

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

Я понимаю причину этой ошибки и ее логику, потому что и черта, и тип примитива являются внешними по отношению к моему коду. Но как я могу справиться с этой ситуацией и обеспечитьToHex реализация дляu8? И в более общем плане, как вы справляетесь с такого рода проблемами, мне кажется, что эта проблема должна быть общей, и должно быть возможно и легко расширять подобные типы?

Ответы на вопрос(2)

Ваш ответ на вопрос