An inherent implementation was defined for a type outside the current crate.
Erroneous code example:
impl Vec<u8> { } // error
You can only define an inherent implementation for a type in the same crate where the type was defined. For example, an impl
block as above is not allowed since Vec
is defined in the standard library.
To fix this problem, you can do either of these things:
Note that using the type
keyword does not work here because type
only introduces a type alias:
type Bytes = Vec<u8>; impl Bytes { } // error, same as above