From 90aa3fda312d7c711ce112c6917c19933edef883 Mon Sep 17 00:00:00 2001 From: Joscha Date: Fri, 20 Jan 2023 22:40:08 +0100 Subject: [PATCH] Track time since connecting and joining --- src/conn.rs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/conn.rs b/src/conn.rs index 962ff35..cfa3827 100644 --- a/src/conn.rs +++ b/src/conn.rs @@ -69,14 +69,24 @@ impl error::Error for Error {} type Result = result::Result; -#[derive(Debug, Clone, Default)] +#[derive(Debug, Clone)] pub struct Joining { + pub since: OffsetDateTime, pub hello: Option, pub snapshot: Option, pub bounce: Option, } impl Joining { + fn new() -> Self { + Self { + since: OffsetDateTime::now_utc(), + hello: None, + snapshot: None, + bounce: None, + } + } + fn on_data(&mut self, data: &Data) -> Result<()> { match data { Data::BounceEvent(p) => self.bounce = Some(p.clone()), @@ -108,6 +118,7 @@ impl Joining { .map(|s| (s.session_id.clone(), SessionInfo::Full(s))) .collect::>(); Some(Joined { + since: OffsetDateTime::now_utc(), session, account: hello.account.clone(), listing, @@ -149,6 +160,7 @@ impl SessionInfo { #[derive(Debug, Clone)] pub struct Joined { + pub since: OffsetDateTime, pub session: SessionView, pub account: Option, pub listing: HashMap, @@ -568,7 +580,7 @@ impl Conn { last_euph_ping_payload: None, last_euph_ping_replied_to: false, - state: State::Joining(Joining::default()), + state: State::Joining(Joining::new()), } }