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![