From 81fd39485f81bb3345786f86e387bd3aac925d84 Mon Sep 17 00:00:00 2001 From: StarStarJ <77283933+StarStarJ@users.noreply.github.com> Date: Sat, 1 Jul 2023 17:07:35 +0200 Subject: [PATCH] Implement `PartialOrd`/`Ord` for `KeyCode`/`NativeKeyCode` --- CHANGELOG.md | 2 ++ src/keyboard.rs | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b7093439e0..2d590d3948 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ And please only add new entries to the top of this list, right below the `# Unre # Unreleased +- Implement `PartialOrd` and `Ord` for `KeyCode` and `NativeKeyCode`. + # 0.29.0-beta.0 - On Web, allow event loops to be recreated with `spawn`. diff --git a/src/keyboard.rs b/src/keyboard.rs index 45a10c6d0b..7e9b81fc36 100644 --- a/src/keyboard.rs +++ b/src/keyboard.rs @@ -82,7 +82,7 @@ use smol_str::SmolStr; /// /// - Correctly match key press and release events. /// - On non-web platforms, support assigning keybinds to virtually any key through a UI. -#[derive(Clone, Copy, PartialEq, Eq, Hash)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub enum NativeKeyCode { Unidentified, @@ -196,7 +196,7 @@ impl std::fmt::Debug for NativeKey { /// /// [`KeyboardEvent.code`]: https://w3c.github.io/uievents-code/#code-value-tables #[non_exhaustive] -#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub enum KeyCode { /// This variant is used when the key cannot be translated to any other variant.