code: def map_err(self, op: Callable[[E], F]) -> 'Union[Result[T, F], Result[T, E]]':
          
          return self if self._is_ok else cast(
              'Result[T, F]',
              self._type.Err(op(cast(E, self._val)))
          )
docs: Applies a function to the contained :meth:`Result.Err` value.
  
          Args:
              op: The function to apply to the :meth:`Result.Err` value.
  
          Returns:
              A :class:`Result` with its error value as the function result
              if `self` is a :meth:`Result.Err` value, otherwise returns
              `self`.
  
          Examples:
              >>> Ok(1).map_err(lambda x: x * 2)
              Ok(1)
              >>> Err(1).map_err(lambda x: x * 2)
              Err(2)