docs: def build_sink(function: Callable[..., None] = None, *,
                 unpack: bool = False):
      """ Decorator to wrap a function to return a Sink subscriber.
  
      :param function: function to be wrapped
      :param unpack: value from emits will be unpacked (*value)
      """
      def _build_sink(function: Callable[..., None]):
          @wraps(function)
          def _wrapper(*args, **kwargs) -> Sink:
              if 'unpack' in kwargs:
                  raise TypeError('"unpack" has to be defined by decorator')
              return Sink(function, *args, unpack=unpack, **kwargs)
          return _wrapper
  
      if function:
          return _build_sink(function)
  
      return _build_sink