E0116
为当前crate之外的类型定义固有实现
错误代码示例:
impl Vec<u8> { } // error
你只能在定义该类型的 crate 中为该类型定义一个固有实现。例如,由于 Vec 是在标准库中定义的,所以不允许像上述那样使用 impl 块。
要解决此问题,你可以:
- 定义一个具有关联函数/类型/常量的 trait ,并且为所想要的类型实现 trait 。
- 定义一个包装该类型的新类型,并在该新类型上定义一个实现。
请注意,在这里无法使用 type 关键字,因为 type 仅引入了类型别名:
type Bytes = Vec<u8>;
impl Bytes { } // error, 本质上和上面一样
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。