code: def cython_protocol_handler(colparser):
      
      from cassandra.row_parser import make_recv_results_rows
  
      class FastResultMessage(ResultMessage):
          """
          Cython version of Result Message that has a faster implementation of
          recv_results_row.
          """
          # type_codes = ResultMessage.type_codes.copy()
          code_to_type = dict((v, k) for k, v in ResultMessage.type_codes.items())
          recv_results_rows = classmethod(make_recv_results_rows(colparser))
  
      class CythonProtocolHandler(_ProtocolHandler):
          """
          Use FastResultMessage to decode query result message messages.
          """
  
          my_opcodes = _ProtocolHandler.message_types_by_opcode.copy()
          my_opcodes[FastResultMessage.opcode] = FastResultMessage
          message_types_by_opcode = my_opcodes
  
          col_parser = colparser
  
      return CythonProtocolHandler
docs: Given a column parser to deserialize ResultMessages, return a suitable
      Cython-based protocol handler.
  
      There are three Cython-based protocol handlers:
  
          - obj_parser.ListParser
              decodes result messages into a list of tuples
  
          - obj_parser.LazyParser
              decodes result messages lazily by returning an iterator
  
          - numpy_parser.NumPyParser
              decodes result messages into NumPy arrays
  
      The default is to use obj_parser.ListParser