E0117E0117 — 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.
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).
Mã lỗi liên quan
E0053E0053 — Chữ ký phương thức không khớp
Chữ ký phương thức trong khối impl không khớp với chữ ký phương thức của trait.
E0423E0423 — Mong Đợi Giá Trị, Tìm Thấy Kiểu
Một tên kiểu được dùng ở vị trí mong đợi một giá trị.
E0255E0255 — Xung Đột Tên Với Import
Một định nghĩa cục bộ xung đột với tên được import.
E0432E0432 — Import chưa được resolve
Module hoặc item được tham chiếu trong lệnh use không tìm thấy.
E0106E0106 — Thiếu lifetime specifier
Một reference trong chữ ký hàm hoặc struct thiếu tham số lifetime.
E0428E0428 — Định Nghĩa Trùng Lặp
Một phần tử có cùng tên được định nghĩa nhiều hơn một lần trong cùng một phạm vi.