The #[derive(PartialEq)] will make the == operator work for comparing the struct. This is a comparison of the value, and not of object identity, so two different memory locations holding the same value will return true.
If you want to compare object identity, then you want something along the lines of Arc::ptr_eq.
Rust doesn't compare by pointers. Objects in Rust generally don't have an identity, and don't even have a stable address.
Even when you compare a struct with itself, a == a, it will run partial_cmp that typically checks all fields for semantic equality of the values, and it could even result in false being returned the struct contains NaN anywhere.