def _serialize(self): if self.is_signed(): return gob_varint_encode(long(self.val)) if self.is_unsigned(): return gob_uvarint_encode(long(self.val)) if self.is_string(): return serialize_string(self.val) # floats are serialied as strings if self.is_float(): return serialize_string(str(self.val)) if self.is_struct(): off = self.val.offset assert type(off) in (types.IntType, types.LongType) return gob_uvarint_encode(off) assert False, "don't know how to serialize %s" % str(self.typ)
def _serbin(field): assert isinstance(field, Field) if field.is_no_store(): return None if field.is_signed(): return gob_varint_encode(long(field.val)) if field.is_unsigned(): return gob_uvarint_encode(long(field.val)) if field.is_string(): return serbin_str(field.val) # floats are serialied as strings if field.is_float(): return serbin_str(str(field.val)) if field.is_struct(): off = field.val.offset assert type(off) in (types.IntType, types.LongType) return gob_uvarint_encode(off) if field.is_array(): return serbin_arr(field) assert False, "don't know how to serialize %s" % str(field.typ)