306
I love Rust (lemmy.blahaj.zone)
submitted 6 days ago by rustyfemboy to c/programmerhumor@lemmy.ml
you are viewing a single comment's thread
view the rest of the comments
[-] Ashelyn 32 points 6 days ago

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)?

[-] rustyfemboy 28 points 6 days ago

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.

load more comments (8 replies)
this post was submitted on 15 Nov 2024
306 points (100.0% liked)

Programmer Humor

32519 readers
324 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS