From e9d9766d72740c7d7c9918b4839f3379f57cd6ef Mon Sep 17 00:00:00 2001 From: lancebord Date: Tue, 10 Mar 2026 11:07:44 -0400 Subject: merge consecutive join/part messages --- src/client/event.rs | 13 +++---------- src/client/handler.rs | 22 +++++----------------- 2 files changed, 8 insertions(+), 27 deletions(-) (limited to 'src/client') diff --git a/src/client/event.rs b/src/client/event.rs index 2c06d98..56e133e 100644 --- a/src/client/event.rs +++ b/src/client/event.rs @@ -17,20 +17,13 @@ pub enum Event { SysMessage { text: String }, /// We joined a channel - Joined { channel: String, nick: String }, + Joined { nick: String }, /// We or someone else left a channel - Parted { - channel: String, - nick: String, - reason: Option, - }, + Parted { nick: String }, /// Someone quit the server - Quit { - nick: String, - reason: Option, - }, + Quit { nick: String }, /// A nick change (could be ours) NickChanged { old_nick: String, new_nick: String }, diff --git a/src/client/handler.rs b/src/client/handler.rs index 63baf87..f30260f 100644 --- a/src/client/handler.rs +++ b/src/client/handler.rs @@ -90,40 +90,28 @@ pub fn handle(msg: IrcMessage, state: &mut ClientState, sender: &Sender) -> Vec< Command::Join => { let nick = nick_from_prefix(&msg.prefix); - if let Some(channel) = msg.params.first() { - events.push(Event::Joined { - channel: channel.clone(), - nick: nick.clone(), - }); - if nick != state.nick { - state.channel.members.insert(nick); - } + events.push(Event::Joined { nick: nick.clone() }); + if nick != state.nick { + state.channel.members.insert(nick); } } Command::Part => { let nick = nick_from_prefix(&msg.prefix); - let channel = msg.params.first().cloned().unwrap_or_default(); - let reason = msg.params.get(1).cloned(); if nick != state.nick { state.channel.members.remove(&nick); } - events.push(Event::Parted { - channel, - nick, - reason, - }); + events.push(Event::Parted { nick }); } Command::Quit => { let nick = nick_from_prefix(&msg.prefix); - let reason = msg.params.first().cloned(); state.channel.members.remove(&nick); - events.push(Event::Quit { nick, reason }); + events.push(Event::Quit { nick }); } Command::Nick => { -- cgit v1.2.3-59-g8ed1b