трейт From<T: std::error::Error>, а я хочу еще реализовать From<std::option::NoneError>, но когда я реализую напрямую, то получается ошибка:
error[E0119]: conflicting implementations of trait `std::convert::From<std::option::NoneError>` for type `error::MyError`:
--> src/error.rs:44:1
|
38 | impl<T: std::error::Error> From<T> for MyError {
| ---------------------------------------------- first implementation here
...
44 | impl From<std::option::NoneError> for MyError {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `error::MyError`
|
= note: upstream crates may add a new impl of trait `std::error::Error` for type `std::option::NoneError` in future versions
(хотя на самом деле трейт Error не реализован для NoneError)
Как исправить эту ошибку?
Нет тривиального способа Но в целом обычно не нужно реализовывать From<NoneError>
Ну и еще вопрос: почему там conflicting implementations, если NoneError на самом деле не Error?
Обсуждают сегодня