docs: def guess_payload_class(self, payload):
          # type: (str) -> base_classes.Packet_metaclass
          """ guess_payload_class returns the Class object to use for parsing a payload
          This function uses the H2Frame.type field value to decide which payload to parse. The implement cannot be  # noqa: E501
          performed using the simple bind_layers helper because sometimes the selection of which Class object to return  # noqa: E501
          also depends on the H2Frame.flags value.
  
          @param payload:
          @return:
          """
          if len(payload) == 0:
              return packet.NoPayload
  
          t = self.getfieldval('type')
          if t == H2DataFrame.type_id:
              if H2DataFrame.flags[H2DataFrame.PADDED_FLAG].short in self.getfieldval('flags'):  # noqa: E501
                  return H2PaddedDataFrame
              return H2DataFrame
  
          if t == H2HeadersFrame.type_id:
              if H2HeadersFrame.flags[H2HeadersFrame.PADDED_FLAG].short in self.getfieldval('flags'):  # noqa: E501
                  if H2HeadersFrame.flags[H2HeadersFrame.PRIORITY_FLAG].short in self.getfieldval('flags'):  # noqa: E501
                      return H2PaddedPriorityHeadersFrame
                  else:
                      return H2PaddedHeadersFrame
              elif H2HeadersFrame.flags[H2HeadersFrame.PRIORITY_FLAG].short in self.getfieldval('flags'):  # noqa: E501
                  return H2PriorityHeadersFrame
              return H2HeadersFrame
  
          if t == H2PriorityFrame.type_id:
              return H2PriorityFrame
  
          if t == H2ResetFrame.type_id:
              return H2ResetFrame
  
          if t == H2SettingsFrame.type_id:
              return H2SettingsFrame
  
          if t == H2PushPromiseFrame.type_id:
              if H2PushPromiseFrame.flags[H2PushPromiseFrame.PADDED_FLAG].short in self.getfieldval('flags'):  # noqa: E501
                  return H2PaddedPushPromiseFrame
              return H2PushPromiseFrame
  
          if t == H2PingFrame.type_id:
              return H2PingFrame
  
          if t == H2GoAwayFrame.type_id:
              return H2GoAwayFrame
  
          if t == H2WindowUpdateFrame.type_id:
              return H2WindowUpdateFrame
  
          if t == H2ContinuationFrame.type_id:
              return H2ContinuationFrame
  
          return config.conf.padding_layer