code: async def cancel(self):
          
          if self._cancel_done:
              raise ProtocolError('Stream was already cancelled')
  
          with self._wrapper:
              await self._stream.reset()  # TODO: specify error code
              self._cancel_done = True
docs: Coroutine to cancel this request/stream.
  
          Client will send RST_STREAM frame to the server, so it will be
          explicitly informed that there is nothing to expect from the client
          regarding this request/stream.