Skip to content

Commit

Permalink
Add Hash impls for Point and Rect
Browse files Browse the repository at this point in the history
  • Loading branch information
mdsteele authored and Cobrand committed Mar 31, 2018
1 parent 9cce8ed commit 162441b
Showing 1 changed file with 18 additions and 1 deletion.
19 changes: 18 additions & 1 deletion src/sdl2/rect.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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.
///
Expand Down Expand Up @@ -80,6 +81,15 @@ impl PartialEq for Rect {

impl Eq for Rect {}

impl Hash for Rect {
fn hash<H: Hasher>(&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.
///
Expand Down Expand Up @@ -656,6 +666,13 @@ impl PartialEq for Point {

impl Eq for Point {}

impl Hash for Point {
fn hash<H: Hasher>(&self, state: &mut H) {
self.raw.x.hash(state);
self.raw.y.hash(state);
}
}

impl Deref for Point {
type Target = sys::SDL_Point;

Expand Down Expand Up @@ -1034,4 +1051,4 @@ mod test {
Point::new(-11, 5) / 3
);
}
}
}

0 comments on commit 162441b

Please sign in to comment.