Free software supporter, proud Linux user 🐧, communist (not a tankie, though I do like Cuba), gay femboy 🏳️🌈 and evangelist of the glorious Rust programming language 🦀.
فلسطين حرة! 🇵🇸
Слава Україні! 🇺🇦
2 Posts
1 Comment
Joined 4 months ago
Cake day: August 8th, 2024
You are not logged in. If you use a Fediverse account that is able to follow users, you can follow this user.
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 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.
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
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.