'"Wire type" is a part of the "key" that carries enough
information to parse value from the wire, i.e. read correct
amount of bytes, but there\'s not enough informaton to
interprete in unambiguously. For example, one can\'t clearly
distinguish 64-bit fixed-sized integers from 64-bit floats,
signed zigzag-encoded varints from regular unsigned varints,
arbitrary bytes from UTF-8 encoded strings, etc.'

@property
def wire_type(self):

    if hasattr(self, '_m_wire_type'):
        return (self._m_wire_type if hasattr(self, '_m_wire_type') else None)
    self._m_wire_type = self._root.Pair.WireTypes((self.key.value & 7))
    return (self._m_wire_type if hasattr(self, '_m_wire_type') else None)
