def int64(name, options = {})
attr_writer name
if options[:type] == :array
class_eval "def \#{name}\n@\#{name} ||= []\nend\n\ndef serialize_\#{name}(buffer)\nbuffer << \#{name}.pack(INT64_DECODE_ARRAY_STR)\nend\n\ndef deserialize_\#{name}(buffer)\nraise NotImplementedError\nend\n", __FILE__, __LINE__ + 1
else
class_eval "def \#{name}\n@\#{name} ||= 0\nend\n\ndef serialize_\#{name}(buffer)\nbuffer << [\#{name}].pack(INT64_DECODE_STR)\nend\n\ndef deserialize_\#{name}(buffer)\nself.\#{name}, = buffer.read(8).unpack(INT64_DECODE_STR)\nend\n", __FILE__, __LINE__ + 1
end
fields << name
end