diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2020-10-14 01:48:07 +0200 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2020-10-14 01:48:07 +0200 |
| commit | 3d8009a0201fba0bdc464fae0797d3bb3bcf69f4 (patch) | |
| tree | c831804fa1e4e20d1152b4051f276feb67ed0881 /mumd/src/command.rs | |
| parent | 50f5f273426d805025a9336398862529b6bb9b60 (diff) | |
| download | mum-3d8009a0201fba0bdc464fae0797d3bb3bcf69f4.tar.gz | |
wip handle more commands (panics)
Diffstat (limited to 'mumd/src/command.rs')
| -rw-r--r-- | mumd/src/command.rs | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/mumd/src/command.rs b/mumd/src/command.rs index 1f7a781..c3b72bf 100644 --- a/mumd/src/command.rs +++ b/mumd/src/command.rs @@ -1,5 +1,6 @@ -use crate::state::State; +use crate::state::{Channel, Server, State}; +use std::collections::HashMap; use std::sync::{Arc, Mutex}; use tokio::sync::mpsc; @@ -19,14 +20,23 @@ pub enum Command { Status, } +#[derive(Debug)] +pub enum CommandResponse { + ChannelList { + channels: HashMap<u32, Channel>, + }, + Status { + username: String, + server_state: Server, + } +} + pub async fn handle( state: Arc<Mutex<State>>, mut command_receiver: mpsc::UnboundedReceiver<Command>, + command_response_sender: mpsc::UnboundedSender<Result<Option<CommandResponse>, ()>>, ) { - // wait until we can send packages - let mut initialized_receiver = state.lock().unwrap().initialized_receiver(); - while matches!(initialized_receiver.recv().await, Some(false)) {} - + //TODO err if not connected while let Some(command) = command_receiver.recv().await { state.lock().unwrap().handle_command(command).await; } |
