Rusty 🦀 Femboy 🏳️🌈@lemmy.blahaj.zone to Programmer Humor@lemmy.mlEnglish · 1 day agoI love Rustlemmy.blahaj.zoneimagemessage-square61fedilinkarrow-up1267arrow-down121
arrow-up1246arrow-down1imageI love Rustlemmy.blahaj.zoneRusty 🦀 Femboy 🏳️🌈@lemmy.blahaj.zone to Programmer Humor@lemmy.mlEnglish · 1 day agomessage-square61fedilink
minus-squareGonzako@lemmy.worldlinkfedilinkarrow-up5arrow-down1·1 day agoI’ve only had to implement equality in C# but that didn’t seem that hard of a problem. you just expand the operator = function
minus-squareporous_grey_matter@lemmy.mllinkfedilinkarrow-up10·1 day agoIt’s not hard, just if you’re doing it for a struct with a lot of fields it’s a lot of boilerplate
minus-squareGetOffMyLan@programming.devlinkfedilinkarrow-up5arrow-down1·edit-21 day agoI just use the HashCode class and compare the results. Pretty sure there’s a source generator for it as well nowadays.
minus-squareDeckweiss@lemmy.worldlinkfedilinkarrow-up1arrow-down5·edit-21 day agoMy IDE can do that for me. And it was able to do that pre AI boom. Yes, the code ends up more verbose, but I just collapse it. So from a modern dev UX perspective, this shouldn’t be a major difference.
minus-squareporous_grey_matter@lemmy.mllinkfedilinkarrow-up5arrow-down1·1 day agoEven if the tool works perfectly, you have to run it every time you change something. It’s not the end of the world, but it’s still much nicer to just have a macro to derive it at compile time.
minus-squarecopygirl@lemmy.blahaj.zonelinkfedilinkEnglisharrow-up6·1 day agoThen you should also override Equals(object), GetHashCode, and implement IEquatable<T>. Thankfully a lot of the usual boilerplate code can be avoided using a record class or struct: public record Person(string Name, uint Age);
minus-squareGonzako@lemmy.worldlinkfedilinkarrow-up1·22 hours agoOh well, It does show how little I do have to actually use that. It just hasn’t come up that much
I’ve only had to implement equality in C# but that didn’t seem that hard of a problem. you just expand the operator = function
It’s not hard, just if you’re doing it for a struct with a lot of fields it’s a lot of boilerplate
I just use the HashCode class and compare the results.
Pretty sure there’s a source generator for it as well nowadays.
My IDE can do that for me. And it was able to do that pre AI boom. Yes, the code ends up more verbose, but I just collapse it.
So from a modern dev UX perspective, this shouldn’t be a major difference.
Even if the tool works perfectly, you have to run it every time you change something. It’s not the end of the world, but it’s still much nicer to just have a macro to derive it at compile time.
Then you should also override
Equals(object)
,GetHashCode
, and implementIEquatable<T>
.Thankfully a lot of the usual boilerplate code can be avoided using a
record
class or struct:Oh well, It does show how little I do have to actually use that. It just hasn’t come up that much