You can't re-impl traits on a type, and you can't impl foreign traits on foreign structs. You can impl your own traits on foreign structs or vice-versa but both cannot be foreign.
As @OptimisticPeach mentioned, this is deliberately not possible. Only one crate can implement each trait/type combination. Otherwise there could be chaos caused by dependencies overwriting and breaking each other.
The workaround is usually to wrap the type in a newtype, i.e. your own struct
struct MyWrapper(NotMyType);
impl NotMyTrait for MyWrapper {}