Generator.Equals icon indicating copy to clipboard operation
Generator.Equals copied to clipboard

Feature request: Support CustomEqualityAttribute for the whole class

Open emphasis87 opened this issue 1 year ago • 2 comments

This is to be able to setup the default comparer for all properties at once.

emphasis87 avatar Oct 15 '24 13:10 emphasis87

Could you elaborate on how you imagine this working? Code examples are helpful too!

diegofrata avatar Oct 15 '24 16:10 diegofrata

If you mean implementation-wise then I will be of not much help, I haven't had a good look at implementing source generators yet.

If you mean usage-wise, instead of

[Equatable]
public record MyRecord(
  [propery: CustomEquality(typeof(MyEqualityComparer)] object property1,
  [propery: CustomEquality(typeof(MyEqualityComparer)] object property2,
  [propery: CustomEquality(typeof(MyEqualityComparer)] object property3);

You would write:

[Equatable]
[CustomEquality(typeof(MyEqualityComparer))]
public record MyRecord(object property1, object property2, object property3);

or

[Equatable]
[DefaultComparer(typeof(MyEqualityComparer))]
public record MyRecord(object property1, object property2, object property3);

emphasis87 avatar Oct 15 '24 17:10 emphasis87