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 ++++++++++++++++---------- src/discord.rs | 2 +- src/slack.rs | 2 +- 3 files changed, 18 insertions(+), 12 deletions(-) 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(); diff --git a/src/discord.rs b/src/discord.rs index e0119a4..fb121fb 100644 --- a/src/discord.rs +++ b/src/discord.rs @@ -1,4 +1,4 @@ -use crate::agenda::{parse_message, AgendaPoint, Emoji}; +use crate::agenda::{self, parse_message, AgendaPoint, Emoji}; use discord::{ model::{ChannelId, Event, PossibleServer, ReactionEmoji, UserId}, diff --git a/src/slack.rs b/src/slack.rs index 49c8cfa..9698109 100644 --- a/src/slack.rs +++ b/src/slack.rs @@ -1,4 +1,4 @@ -use crate::agenda::{parse_message, AgendaPoint, Emoji}; +use crate::agenda::{self, parse_message, AgendaPoint, Emoji}; use futures::join; use slack::{Event, Message}; -- cgit v1.2.1