code: async def send_initial_metadata(self, *, metadata=None):
          
          if self._send_initial_metadata_done:
              raise ProtocolError('Initial metadata was already sent')
  
          headers = [
              (':status', '200'),
              ('content-type', self._content_type),
          ]
          metadata = MultiDict(metadata or ())
          metadata, = await self._dispatch.send_initial_metadata(metadata)
          headers.extend(encode_metadata(metadata))
  
          await self._stream.send_headers(headers)
          self._send_initial_metadata_done = True
docs: Coroutine to send headers with initial metadata to the client.
  
          In gRPC you can send initial metadata as soon as possible, because
          gRPC doesn't use `:status` pseudo header to indicate success or failure
          of the current request. gRPC uses trailers for this purpose, and
          trailers are sent during :py:meth:`send_trailing_metadata` call, which
          should be called in the end.
  
          .. note:: This coroutine will be called implicitly during first
              :py:meth:`send_message` coroutine call, if not called before
              explicitly.
  
          :param metadata: custom initial metadata, dict or list of pairs