From c55f3dc4aabb3704def3816e599bf164d31d3c3e Mon Sep 17 00:00:00 2001 From: Tony Aldridge Date: Sun, 9 Mar 2014 11:22:59 +0000 Subject: [PATCH] Implemented Ord and Eq --- src/codegen/keycode.rs | 21 +++++++++++++++++++++ src/codegen/scancode.rs | 21 +++++++++++++++++++++ src/sdl2/generated/keycode.rs | 15 ++++++++------- src/sdl2/generated/scancode.rs | 17 ++++++++--------- 4 files changed, 58 insertions(+), 16 deletions(-) diff --git a/src/codegen/keycode.rs b/src/codegen/keycode.rs index 700c97e0..8b969768 100644 --- a/src/codegen/keycode.rs +++ b/src/codegen/keycode.rs @@ -6,6 +6,27 @@ struct Key { code: uint, ident: &'static str, } + +impl Ord for Key { + fn lt (&self, other: &Key) -> bool { + if self.code < other.code { + true + } else { + false + } + } +} + +impl Eq for Key { + fn eq (&self, other: &Key) -> bool { + if self.code == other.code { + true + } else { + false + } + } +} + impl TotalOrd for Key { fn cmp(&self, other: &Key) -> Ordering { if self.code < other.code { diff --git a/src/codegen/scancode.rs b/src/codegen/scancode.rs index ca7718ba..3af71c06 100644 --- a/src/codegen/scancode.rs +++ b/src/codegen/scancode.rs @@ -6,6 +6,27 @@ struct ScanCode { code: uint, ident: &'static str, } + +impl Ord for ScanCode { + fn lt (&self, other: &ScanCode) -> bool { + if self.code < other.code { + true + } else { + false + } + } +} + +impl Eq for ScanCode { + fn eq (&self, other: &ScanCode) -> bool { + if self.code == other.code { + true + } else { + false + } + } +} + impl TotalOrd for ScanCode { fn cmp(&self, other: &ScanCode) -> Ordering { if self.code < other.code { diff --git a/src/sdl2/generated/keycode.rs b/src/sdl2/generated/keycode.rs index 99385642..3df9fd96 100644 --- a/src/sdl2/generated/keycode.rs +++ b/src/sdl2/generated/keycode.rs @@ -1,8 +1,10 @@ // This automatically generated file is used as sdl2::keycode. +use std::hash::Hash; +use std::hash::sip::SipState; + use std::num::FromPrimitive; use std::num::ToPrimitive; -use std::to_bytes::IterBytes; #[deriving(Eq)] pub enum KeyCode { @@ -245,12 +247,11 @@ pub enum KeyCode { } -type Cb<'a> = 'a |buf: &[u8]| -> bool; -impl IterBytes for KeyCode{ - - fn iter_bytes(&self, lsb0: bool, f: Cb) -> bool { - self.code().iter_bytes(lsb0, f) - } +impl Hash for KeyCode { + #[inline] + fn hash(&self, state: &mut SipState) { + self.code().hash(state); + } } impl KeyCode { diff --git a/src/sdl2/generated/scancode.rs b/src/sdl2/generated/scancode.rs index 13c31642..bc132e4c 100644 --- a/src/sdl2/generated/scancode.rs +++ b/src/sdl2/generated/scancode.rs @@ -1,8 +1,10 @@ // This automatically generated file is used as sdl2::scancode. +use std::hash::Hash; +use std::hash::sip::SipState; + use std::num::FromPrimitive; use std::num::ToPrimitive; -use std::to_bytes::IterBytes; #[deriving(Eq)] pub enum ScanCode { @@ -251,16 +253,13 @@ pub enum ScanCode { } - -type Cb<'a> = 'a |buf: &[u8]| -> bool; -impl IterBytes for ScanCode { - - fn iter_bytes(&self, lsb0: bool, f: Cb) -> bool { - self.code().iter_bytes(lsb0, f) - } +impl Hash for ScanCode { + #[inline] + fn hash(&self, state: &mut SipState) { + self.code().hash(state); + } } - impl ScanCode { /// Get the code pub fn code(&self) -> i32 {