etype = ((t_set*)type)->get_elem_type();
}
if (type->is_set()) {
- out << "{";
+ out << "Set.new([";
} else {
out << "[" << endl;
}
for (v_iter = val.begin(); v_iter != val.end(); ++v_iter) {
out << indent();
out << render_const_value(etype, *v_iter);
- if (type->is_set()) {
- out << " => true";
- }
out << "," << endl;
}
indent_down();
if (type->is_set()) {
- indent(out) << "}";
+ indent(out) << "])";
} else {
indent(out) << "]";
}
oprot.write_struct_end()
end
+ def ==(other)
+ return false unless other.is_a?(self.class)
+ each_field do |fid, type, name, default|
+ return false unless self.instance_variable_get("@#{name}") == other.instance_variable_get("@#{name}")
+ end
+ true
+ end
+
protected
def handle_message(iprot, fid, ftype)
iprot.read_list_end
elsif field[:type] == Types::SET
e_type, size = iprot.read_set_begin
- value = {}
+ value = Set.new
size.times do
element = read_field(iprot, field_info(field[:element]))
- value[element] = true
+ value << element
end
iprot.read_set_end
else