From 54df44d930e37938f93ee11b41c84e5e98426ec3 Mon Sep 17 00:00:00 2001 From: link2xt Date: Sat, 20 Aug 2022 14:12:05 +0000 Subject: [PATCH] test_utils: implement Deref and DerefMut for EventTracker --- src/test_utils.rs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/test_utils.rs b/src/test_utils.rs index 2b3b92983..305643f0f 100644 --- a/src/test_utils.rs +++ b/src/test_utils.rs @@ -3,7 +3,7 @@ //! This private module is only compiled for test runs. #![allow(clippy::indexing_slicing)] use std::collections::BTreeMap; -use std::ops::Deref; +use std::ops::{Deref, DerefMut}; use std::panic; use std::sync::Arc; use std::time::{Duration, Instant}; @@ -816,6 +816,20 @@ pub fn fiona_keypair() -> key::KeyPair { #[derive(Debug)] pub struct EventTracker(Receiver); +impl Deref for EventTracker { + type Target = Receiver; + + fn deref(&self) -> &Self::Target { + &self.0 + } +} + +impl DerefMut for EventTracker { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } +} + impl EventTracker { /// Consumes emitted events returning the first matching one. /// @@ -824,7 +838,7 @@ impl EventTracker { pub async fn get_matching bool>(&self, event_matcher: F) -> EventType { tokio::time::timeout(Duration::from_secs(10), async move { loop { - let event = self.0.recv().await.unwrap(); + let event = self.recv().await.unwrap(); if event_matcher(&event.typ) { return event.typ; }