Đi đến nội dung
Lỗi trình biên dịch RustLỗi
E0117

E0117 — Chỉ Có Thể Implement Trait Được Định Nghĩa Trong Crate Hiện Tại Cho Các Kiểu

Bạn đang implement một foreign trait cho một foreign type, vi phạm quy tắc orphan.

rustcargo

Nguyên nhân gây ra lỗi này

Quy tắc orphan của Rust ngăn việc implement một trait được định nghĩa trong crate khác cho một kiểu cũng được định nghĩa trong crate khác. Ít nhất một trong trait hoặc kiểu phải được định nghĩa trong crate của bạn.

Cách sửa

Tạo newtype wrapper bao quanh foreign type và implement trait trên wrapper. Định nghĩa trait của riêng bạn với các method tương tự. Dùng newtype pattern: struct MyWrapper(ForeignType).

Tài liệu chính thức

Mã lỗi liên quan