From 2b63fa8ac1b7e7d995955758f8cd9ab2ec7d4e0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustav=20S=C3=B6rn=C3=A4s?= Date: Mon, 7 Jun 2021 00:50:15 +0200 Subject: events command --- mumlib/src/command.rs | 46 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 36 insertions(+), 10 deletions(-) (limited to 'mumlib') diff --git a/mumlib/src/command.rs b/mumlib/src/command.rs index 351d7f6..7551bb3 100644 --- a/mumlib/src/command.rs +++ b/mumlib/src/command.rs @@ -1,6 +1,26 @@ use crate::state::{Channel, Server}; use serde::{Deserialize, Serialize}; +use std::fmt; + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub enum Event { + UserConnected(String, Option), + UserDisconnected(String, Option), +} + +impl fmt::Display for Event { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + Event::UserConnected(user, channel) => { + write!(f, "{} connected to {}", user, channel.as_deref().unwrap_or("unknown channel")) + } + Event::UserDisconnected(user, channel) => { + write!(f, "{} disconnected from {}", user, channel.as_deref().unwrap_or("unknown channel")) + } + } + } +} #[derive(Clone, Debug, Deserialize, Serialize)] pub enum Command { @@ -10,11 +30,21 @@ pub enum Command { ChannelList, ConfigReload, DeafenSelf(Option), + Events { + block: bool + }, InputVolumeSet(f32), MuteOther(String, Option), MuteSelf(Option), OutputVolumeSet(f32), + PastMessages { + block: bool, + }, Ping, + SendMessage { + message: String, + targets: Vec, + }, ServerConnect { host: String, port: u16, @@ -29,13 +59,6 @@ pub enum Command { }, Status, UserVolumeSet(String, f32), - PastMessages { - block: bool, - }, - SendMessage { - message: String, - targets: Vec, - }, } #[derive(Debug, Deserialize, Serialize)] @@ -46,9 +69,15 @@ pub enum CommandResponse { DeafenStatus { is_deafened: bool, }, + Event { + event: Event, + }, MuteStatus { is_muted: bool, }, + PastMessage { + message: (String, String), + }, Pong, ServerConnect { welcome_message: Option, @@ -62,9 +91,6 @@ pub enum CommandResponse { Status { server_state: Server, }, - PastMessage { - message: (String, String), - }, } #[derive(Clone, Debug, Deserialize, Serialize)] -- cgit v1.2.1