have a code like this
struct Field {
name: String,
is_opt: bool,
is_multi: bool,
}
fn dedup_fields(fields: &mut Vec<Field>) {
fields.dedup_by(|(a, b)|
if a.name == b.name {
a.is_opt |= b.is_opt;
a.is_multi = true;
true
} else {
false
}
});
}
in output if two fields are same it dedups but dont make is_multi true and makes is_opt true