aboutsummaryrefslogtreecommitdiffstats
path: root/mumlib/src/command.rs
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2021-06-07 00:50:15 +0200
committerGustav Sörnäs <gustav@sornas.net>2021-06-07 00:50:15 +0200
commit2b63fa8ac1b7e7d995955758f8cd9ab2ec7d4e0e (patch)
tree9c7bb675eb590aac535746ca1058ea873d4fea5a /mumlib/src/command.rs
parent0cc89730e82464e8f6c4ee69a4791fdd0135178c (diff)
downloadmum-2b63fa8ac1b7e7d995955758f8cd9ab2ec7d4e0e.tar.gz
events command
Diffstat (limited to 'mumlib/src/command.rs')
-rw-r--r--mumlib/src/command.rs46
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)]