From 162441bfa38da4e54fe39db0a9a466b77773c0a1 Mon Sep 17 00:00:00 2001 From: "Matthew D. Steele" Date: Tue, 27 Mar 2018 16:15:21 -0400 Subject: [PATCH] Add Hash impls for Point and Rect --- src/sdl2/rect.rs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/sdl2/rect.rs b/src/sdl2/rect.rs index ac290f93..1ec12711 100644 --- a/src/sdl2/rect.rs +++ b/src/sdl2/rect.rs @@ -6,6 +6,7 @@ use std::mem; use std::ptr; use std::ops::{Deref, DerefMut, Add, BitAnd, BitOr, Div, Mul, Neg, Sub}; use std::convert::{AsRef, AsMut}; +use std::hash::{Hash, Hasher}; /// The maximal integer value that can be used for rectangles. /// @@ -80,6 +81,15 @@ impl PartialEq for Rect { impl Eq for Rect {} +impl Hash for Rect { + fn hash(&self, state: &mut H) { + self.raw.x.hash(state); + self.raw.y.hash(state); + self.raw.w.hash(state); + self.raw.h.hash(state); + } +} + impl Rect { /// Creates a new rectangle from the given values. /// @@ -656,6 +666,13 @@ impl PartialEq for Point { impl Eq for Point {} +impl Hash for Point { + fn hash(&self, state: &mut H) { + self.raw.x.hash(state); + self.raw.y.hash(state); + } +} + impl Deref for Point { type Target = sys::SDL_Point; @@ -1034,4 +1051,4 @@ mod test { Point::new(-11, 5) / 3 ); } - } +}