306
I love Rust
(lemmy.blahaj.zone)
Post funny things about programming here! (Or just rant about your favourite programming language.)
Is that because it's that simple, or just that the boilerplate is pre-written in the standard library (or whatever it's called in rust)?
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.