docs: def _get_function_wrapper(
          self, func: typing.Callable[..., typing.Union["typing.Awaitable[typing.Any]", typing.Any]]
      ) -> typing.Callable[..., threading.Thread]:
          """Here should be constructed and returned real decorator.
  
          :param func: Wrapped function
          :type func: typing.Callable[..., typing.Union[typing.Awaitable, typing.Any]]
          :return: wrapped function
          :rtype: typing.Callable[..., threading.Thread]
          """
          prepared: typing.Callable[..., typing.Any] = self._await_if_required(func)
          name: typing.Optional[str] = self.name
          if name is None:
              name = "Threaded: " + getattr(func, "__name__", str(hash(func)))
  
          # noinspection PyMissingOrEmptyDocstring
          @functools.wraps(prepared)  # pylint: disable=missing-docstring
          def wrapper(*args, **kwargs):  # type: (typing.Any, typing.Any) -> threading.Thread
              thread = threading.Thread(target=prepared, name=name, args=args, kwargs=kwargs, daemon=self.daemon)
              if self.started:
                  thread.start()
              return thread
  
          return wrapper