From cfc6244b9cb88ec9521ec02dd0119c3b9f9bbee9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustav=20S=C3=B6rn=C3=A4s?= Date: Sun, 22 Nov 2020 23:00:36 +0100 Subject: implement Display for Agenda --- src/agenda.rs | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'src/agenda.rs') diff --git a/src/agenda.rs b/src/agenda.rs index 2543daa..a132bbb 100644 --- a/src/agenda.rs +++ b/src/agenda.rs @@ -35,6 +35,21 @@ impl Agenda { } } +impl fmt::Display for Agenda { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let s = self + .points + .iter() + .map(|p| p.to_string()) + .collect::>() + .join("\n"); + write!(f, "{}", match s.as_str() { + "" => "Empty agenda", + _ => &s + }) + } +} + pub enum Emoji { Ok, Confused, @@ -61,16 +76,7 @@ where agenda.write(); Some(Emoji::Ok) } else if message.starts_with("!agenda") { - let s = read_agenda() - .points - .iter() - .map(|p| p.to_string()) - .collect::>() - .join("\n"); - send_message(match s.as_str() { - "" => "Agenda is empty".to_string(), - _ => s, - }); + send_message(read_agenda().to_string()); None } else if message.starts_with("!clear") { Agenda { points: Vec::new() }.write(); -- cgit v1.2.1