From 58d01bf502df014dac5d8c6d69f24b2860c2668d Mon Sep 17 00:00:00 2001 From: Dorota Czaplejewicz Date: Wed, 31 Jul 2019 09:50:26 +0000 Subject: [PATCH] imservice: Use discriminants in enums --- src/imservice.rs | 63 ++++++++++++++++-------------------------------- 1 file changed, 21 insertions(+), 42 deletions(-) diff --git a/src/imservice.rs b/src/imservice.rs index d55f2ba7..39e4d0e3 100644 --- a/src/imservice.rs +++ b/src/imservice.rs @@ -155,7 +155,7 @@ pub mod c { eekboard_context_service_set_hint_purpose( imservice.ui_manager, imservice.current.content_hint.bits(), - imservice.current.content_purpose.as_num()); + imservice.current.content_purpose.clone() as u32); } else { eekboard_context_service_hide_keyboard(imservice.ui_manager); } @@ -200,22 +200,26 @@ bitflags!{ } /// Map to `text_input_unstable_v3.content_purpose` values +/// +/// ``` +/// assert_eq!(ContentPurpose::Alpha as u32, 0); +/// ``` #[derive(Debug, Clone)] pub enum ContentPurpose { - Normal, - Alpha, - Digits, - Number, - Phone, - Url, - Email, - Name, - Password, - Pin, - Date, - Time, - Datetime, - Terminal, + Normal = 0, + Alpha = 1, + Digits = 2, + Number = 3, + Phone = 4, + Url = 5, + Email = 6, + Name = 7, + Password = 8, + Pin = 9, + Date = 10, + Time = 11, + Datetime = 12, + Terminal = 13, } impl ContentPurpose { @@ -239,32 +243,13 @@ impl ContentPurpose { _ => None, } } - fn as_num(self: &ContentPurpose) -> u32 { - use self::ContentPurpose::*; - match self { - Normal => 0, - Alpha => 1, - Digits => 2, - Number => 3, - Phone => 4, - Url => 5, - Email => 6, - Name => 7, - Password => 8, - Pin => 9, - Date => 10, - Time => 11, - Datetime => 12, - Terminal => 13, - } - } } /// Map to `text_input_unstable_v3.change_cause` values #[derive(Debug, Clone)] pub enum ChangeCause { - InputMethod, - Other, + InputMethod = 0, + Other = 1, } impl ChangeCause { @@ -275,12 +260,6 @@ impl ChangeCause { _ => None } } - pub fn as_num(&self) -> u32 { - match &self { - ChangeCause::InputMethod => 0, - ChangeCause::Other => 1, - } - } } /// Describes the desired state of the input method as requested by the server