docs: def m2i(self, pkt, x):
          # type: (Optional[packet.Packet], Union[str, Tuple[str, int]]) -> int
          """
            A tuple is expected for the "x" param only if "size" is different than 8. If a tuple is received, some bits  # noqa: E501
            were consumed by another field. This field consumes the remaining bits, therefore the int of the tuple must  # noqa: E501
            equal "size".
  
          @param packet.Packet|None pkt: unused.
          @param str|(str, int) x: the string to convert. If bits were consumed by a previous bitfield-compatible field.  # noqa: E501
          @raise AssertionError
          """
          assert(isinstance(x, bytes) or (isinstance(x, tuple) and x[1] >= 0))
  
          if isinstance(x, tuple):
              assert (8 - x[1]) == self.size, 'EINVAL: x: not enough bits remaining in current byte to read the prefix'  # noqa: E501
              val = x[0]
          else:
              assert isinstance(x, bytes) and self.size == 8, 'EINVAL: x: tuple expected when prefix_len is not a full byte'  # noqa: E501
              val = x
  
          if self._detect_multi_byte(val[0]):
              ret = self._parse_multi_byte(val)
          else:
              ret = orb(val[0]) & self._max_value
  
          assert(ret >= 0)
          return ret