rustHow to compare structs in Rust
Comparing structs in Rust is done using the PartialEq and Eq traits. The PartialEq trait allows for comparison of two structs using the == operator, while the Eq trait allows for comparison of two structs using the == and != operators.
Example code
use std::cmp::PartialEq;
#[derive(PartialEq)]
struct Point {
x: i32,
y: i32,
}
fn main() {
let p1 = Point { x: 1, y: 2 };
let p2 = Point { x: 1, y: 2 };
assert!(p1 == p2);
}
Output example
assertion successful
Code explanation
use std::cmp::PartialEq: This imports thePartialEqtrait from thestd::cmpmodule.#[derive(PartialEq)]: This derives thePartialEqtrait for thePointstruct, allowing it to be compared using the==operator.let p1 = Point { x: 1, y: 2 };: This creates aPointstruct withxandyvalues of1and2respectively.let p2 = Point { x: 1, y: 2 };: This creates a secondPointstruct withxandyvalues of1and2respectively.assert!(p1 == p2);: This uses the==operator to compare the twoPointstructs, and asserts that they are equal.
Helpful links
Related
- How to init zero struct in Rust
- How to copy struct in Rust
- Example of struct private field in Rust
- Example of struct with vector field in Rust
- How to convert struct to protobuf in Rust
- How to convert struct to bytes in Rust
- How to serialize struct to xml in Rust
- Example of Rust struct with closure
- Rust struct with one field example
More of Rust
- How to perform matrix operations in Rust?
- Regex example to match multiline string in Rust?
- How to make regex case insensitive in Rust?
- How to use regex captures in Rust?
- How to use binary regex in Rust?
- How to use regex to match a double quote in Rust?
- How to print a Rust HashMap?
- How to use regex lookbehind in Rust?
- How to yield a thread in Rust?
- How to convert a Rust slice of u8 to u32?
See more codes...