From e49f76b4be3b4e88ffe29ab2d70d2d2dc1422d1a Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Mon, 13 Sep 2021 18:33:37 +0200 Subject: [PATCH] state-res: Implement Event for &T where T: Event --- crates/ruma-state-res/src/state_event.rs | 58 ++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/crates/ruma-state-res/src/state_event.rs b/crates/ruma-state-res/src/state_event.rs index bea7be01..6f49ae0e 100644 --- a/crates/ruma-state-res/src/state_event.rs +++ b/crates/ruma-state-res/src/state_event.rs @@ -56,6 +56,64 @@ pub trait Event { fn signatures(&self) -> BTreeMap, BTreeMap>; } +impl Event for &T { + fn event_id(&self) -> &EventId { + (*self).event_id() + } + + fn room_id(&self) -> &RoomId { + (*self).room_id() + } + + fn sender(&self) -> &UserId { + (*self).sender() + } + + fn origin_server_ts(&self) -> MilliSecondsSinceUnixEpoch { + (*self).origin_server_ts() + } + + fn event_type(&self) -> &EventType { + (*self).event_type() + } + + fn content(&self) -> serde_json::Value { + (*self).content() + } + + fn state_key(&self) -> Option<&str> { + (*self).state_key() + } + + fn prev_events(&self) -> Box + '_> { + (*self).prev_events() + } + + fn depth(&self) -> &UInt { + (*self).depth() + } + + fn auth_events(&self) -> Box + '_> { + (*self).auth_events() + } + + fn redacts(&self) -> Option<&EventId> { + (*self).redacts() + } + + fn unsigned(&self) -> &BTreeMap { + (*self).unsigned() + } + + fn hashes(&self) -> &EventHash { + (*self).hashes() + } + + fn signatures(&self) -> BTreeMap, BTreeMap> { + (*self).signatures() + } +} + impl Event for Arc { fn event_id(&self) -> &EventId { (&**self).event_id()