Возможно ли общее преобразование Result<T, ErrorType1>
в Result<T, ErrorType2>
, если ErrorType2::From(ErrorType1)
уже реализовано?Кажется, это должно быть возможно.
Это моя первая попытка, но она не компилируется.
impl<T> From<Result<T, LocalErrorType>> for Result<T, ForeignErrorType> {
fn from<T>(res: Result<T, LocalErrorType>) -> Self {
match sr {
Ok(o) => Ok(o),
Err(se) => Err(se.into())
}
}
}
, потому что:
From
является иностранным признаком
Result<T, LocalErrorType>
является иностранным типом, несмотря на то, что LocalErrorType
является локальным типом
Result<T, ForeignErrorType>
это также иностранный тип
Как мне этого добиться?