WIP: Naive replacement of FromError

I began by simply replacing FromError with the one provided by std::error::FromError.
Right now I get an error because both FromError and some of the types the macro gets used for are not part of this crate:

src/cargo/util/errors.rs:37:1: 45:2 note: in expansion of from_error!
src/cargo/util/errors.rs:119:1: 119:27 note: expansion site
src/cargo/util/errors.rs:39:9: 43:10 error: cannot provide an extension implementation where both trait and type are not defined in this crate [E0117]
src/cargo/util/errors.rs:39         impl FromError<$ty> for $ty {
src/cargo/util/errors.rs:40             fn from_error(error: $ty) -> $ty {
src/cargo/util/errors.rs:41                 error
src/cargo/util/errors.rs:42             }
src/cargo/util/errors.rs:43         }


I am not quite sure how to go about it though?
Appreciate your advice.