From a113127df179af332e81fb567408b8cd92d10fb3 Mon Sep 17 00:00:00 2001 From: Alexander Krotov Date: Wed, 15 Jan 2020 09:10:23 +0300 Subject: [PATCH] Implement Display for MessageState --- src/message.rs | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/src/message.rs b/src/message.rs index b5c7154c5..d38aa07c7 100644 --- a/src/message.rs +++ b/src/message.rs @@ -610,7 +610,7 @@ impl Message { } } -#[derive(Debug, Display, Clone, Copy, PartialEq, Eq, FromPrimitive, ToPrimitive, ToSql, FromSql)] +#[derive(Debug, Clone, Copy, PartialEq, Eq, FromPrimitive, ToPrimitive, ToSql, FromSql)] #[repr(i32)] pub enum MessageState { Undefined = 0, @@ -661,6 +661,27 @@ impl Default for MessageState { } } +impl std::fmt::Display for MessageState { + fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { + write!( + f, + "{}", + match self { + Self::Undefined => "Undefined", + Self::InFresh => "Fresh", + Self::InNoticed => "Noticed", + Self::InSeen => "Seen", + Self::OutPreparing => "Preparing", + Self::OutDraft => "Draft", + Self::OutPending => "Pending", + Self::OutFailed => "Failed", + Self::OutDelivered => "Delivered", + Self::OutMdnRcvd => "Read", + } + ) + } +} + impl From for LotState { fn from(s: MessageState) -> Self { use MessageState::*; @@ -815,19 +836,7 @@ pub fn get_msg_info(context: &Context, msg_id: MsgId) -> String { } } - ret += "State: "; - use MessageState::*; - match msg.state { - InFresh => ret += "Fresh", - InNoticed => ret += "Noticed", - InSeen => ret += "Seen", - OutDelivered => ret += "Delivered", - OutFailed => ret += "Failed", - OutMdnRcvd => ret += "Read", - OutPending => ret += "Pending", - OutPreparing => ret += "Preparing", - _ => ret += &format!("{}", msg.state), - } + ret += &format!("State: {}", msg.state); if msg.has_location() { ret += ", Location sent";