1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
macro_rules! error_convert_from {
  ($from_type:ty, $to_type:ident, $tgt:ident (display)) => {
    impl From<$from_type> for $to_type {
      fn from(error: $from_type) -> Self {
        $to_type::$tgt(format!("{}", error))
      }
    }
  };
  ($from_type:ty, $to_type:ident, $tgt:ident (direct)) => {
    impl From<$from_type> for $to_type {
      fn from(error: $from_type) -> Self {
        $to_type::$tgt(error)
      }
    }
  };
}