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:
#[derive(PartialEq, Eq)]
struct Person {
name: String,
age: u32,
}
In Rust, PartialEq
and Eq
are traits, which are similar to interfaces in Java. Manually implementing the PartialEq
trait in this example would be writing code that returns something like a.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, and PartialOrd
and Ord
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.
Just now.