this post was submitted on 15 Nov 2024
286 points (92.8% liked)
Programmer Humor
32706 readers
398 users here now
Post funny things about programming here! (Or just rant about your favourite programming language.)
Rules:
- Posts must be relevant to programming, programmers, or computer science.
- No NSFW content.
- Jokes must be in good taste. No hate speech, bigotry, etc.
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Yes, it is that simple. In Rust if you have a structure
Person
and you want to allow testing equality between instances, you just add that bit of code before the struct definition as follows:In Rust,
PartialEq
andEq
are traits, which are similar to interfaces in Java. Manually implementing thePartialEq
trait in this example would be writing code that returns something likea.name == b.name && a.age == b.age
. This is pretty simple but with large data structures it can be a lot of boilerplate.There also exist other traits such as
Clone
to allow creating a copy of an instance,Debug
for getting a string representation of an object, andPartialOrd
andOrd
for providing an ordering. Each of these traits can be automatically implemented for a struct by adding#[derive(PartialEq, Eq, Clone, Debug, PartialOrd, Ord)]
before it.