code: def parse(cls, buff, offset):
          
          size, offset = cls.size_primitive.parse(buff, offset)
          if size == -1:
              return None, offset
  
          var_struct = struct.Struct("!%ds" % size)
  
          value = var_struct.unpack_from(buff, offset)[0]
          value = cls.parse_value(value)
          offset += var_struct.size
  
          return value, offset
docs: Given a buffer and offset, returns the parsed value and new offset.
  
          Parses the ``size_primitive`` first to determine how many more bytes to
          consume to extract the value.