## 概要 - 同値関係は基本的に[[PartialEqトレイト]]で実装する - [[PartialEqトレイト]]は[[Eqトレイト]]のスーパートレイト - 反射関係(`a == a`)を満たす場合のみ[[Eqトレイト]]を実装する (大抵のケース) - ただし実装は空。反射関係を示すだけ - 反射関係を満たさないもの(`a != a`となる判例がある)には`f32`の`NAN`などがある ## 同値関係をderiveする場合は - [[PartialEqトレイト]]は必ず実装する - ほとんどのケースで[[Eqトレイト]]も実装する - 反射関係を満たさないレアケースは[[Eqトレイト]]を実装しない ## 参考 - [PartialEq と Eq \- Rust \| nju33](https://nju33.com/notes/rust/articles/PartialEq%20%E3%81%A8%20Eq) - [付録C:導出可能なトレイト \- The Rust Programming Language 日本語版](https://doc.rust-jp.rs/book-ja/appendix-03-derivable-traits.html#%E7%AD%89%E4%BE%A1%E6%AF%94%E8%BC%83%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AEpartialeq%E3%81%A8eq)