From e0fbb0253e196d765b847375ce1049607e0c04ec Mon Sep 17 00:00:00 2001 From: Bill Thiede Date: Mon, 27 Nov 2023 17:16:57 -0800 Subject: [PATCH] web: create implement_email! macro --- web/src/lib.rs | 37 ++++++++++++++----------------------- 1 file changed, 14 insertions(+), 23 deletions(-) diff --git a/web/src/lib.rs b/web/src/lib.rs index 7239e4d..315f201 100644 --- a/web/src/lib.rs +++ b/web/src/lib.rs @@ -998,30 +998,21 @@ impl Email for &'_ T { } } -impl Email for ShowThreadQueryThreadMessagesCc { - fn name(&self) -> Option<&str> { - self.name.as_deref() - } - fn addr(&self) -> Option<&str> { - self.addr.as_deref() - } -} -impl Email for ShowThreadQueryThreadMessagesFrom { - fn name(&self) -> Option<&str> { - self.name.as_deref() - } - fn addr(&self) -> Option<&str> { - self.addr.as_deref() - } -} -impl Email for ShowThreadQueryThreadMessagesTo { - fn name(&self) -> Option<&str> { - self.name.as_deref() - } - fn addr(&self) -> Option<&str> { - self.addr.as_deref() - } +macro_rules! implement_email { + ( $t:ty ) => { + impl Email for $t { + fn name(&self) -> Option<&str> { + self.name.as_deref() + } + fn addr(&self) -> Option<&str> { + self.addr.as_deref() + } + } + }; } +implement_email!(ShowThreadQueryThreadMessagesTo); +implement_email!(ShowThreadQueryThreadMessagesCc); +implement_email!(ShowThreadQueryThreadMessagesFrom); fn view_address(email: impl Email) -> Node { span![