diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2021-06-07 00:50:15 +0200 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2021-06-07 00:50:15 +0200 |
| commit | 2b63fa8ac1b7e7d995955758f8cd9ab2ec7d4e0e (patch) | |
| tree | 9c7bb675eb590aac535746ca1058ea873d4fea5a /mumlib/src/command.rs | |
| parent | 0cc89730e82464e8f6c4ee69a4791fdd0135178c (diff) | |
| download | mum-2b63fa8ac1b7e7d995955758f8cd9ab2ec7d4e0e.tar.gz | |
events command
Diffstat (limited to 'mumlib/src/command.rs')
| -rw-r--r-- | mumlib/src/command.rs | 46 |
1 files changed, 36 insertions, 10 deletions
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<String>), + UserDisconnected(String, Option<String>), +} + +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<bool>), + Events { + block: bool + }, InputVolumeSet(f32), MuteOther(String, Option<bool>), MuteSelf(Option<bool>), OutputVolumeSet(f32), + PastMessages { + block: bool, + }, Ping, + SendMessage { + message: String, + targets: Vec<MessageTarget>, + }, ServerConnect { host: String, port: u16, @@ -29,13 +59,6 @@ pub enum Command { }, Status, UserVolumeSet(String, f32), - PastMessages { - block: bool, - }, - SendMessage { - message: String, - targets: Vec<MessageTarget>, - }, } #[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<String>, @@ -62,9 +91,6 @@ pub enum CommandResponse { Status { server_state: Server, }, - PastMessage { - message: (String, String), - }, } #[derive(Clone, Debug, Deserialize, Serialize)] |
