diff options
| author | Austin Hellyer <[email protected]> | 2016-11-19 16:26:10 -0800 |
|---|---|---|
| committer | Austin Hellyer <[email protected]> | 2016-11-19 16:26:10 -0800 |
| commit | 899687a6a5a938b3e3dc189ceb740f4dcdef90c4 (patch) | |
| tree | e21b293b5ae741e868c3bbac21408278ff05bef6 /src/client | |
| parent | Nonblocking connection (diff) | |
| download | serenity-899687a6a5a938b3e3dc189ceb740f4dcdef90c4.tar.xz serenity-899687a6a5a938b3e3dc189ceb740f4dcdef90c4.zip | |
Fix type errors for non-framework builds
Diffstat (limited to 'src/client')
| -rw-r--r-- | src/client/dispatch.rs | 2 | ||||
| -rw-r--r-- | src/client/mod.rs | 16 |
2 files changed, 13 insertions, 5 deletions
diff --git a/src/client/dispatch.rs b/src/client/dispatch.rs index 80b2061..ad40497 100644 --- a/src/client/dispatch.rs +++ b/src/client/dispatch.rs @@ -68,7 +68,7 @@ pub fn dispatch(event: Event, } #[cfg(not(feature="framework"))] -pub fn dispatch(event: Result<Event>, +pub fn dispatch(event: Event, conn: Arc<Mutex<Connection>>, login_type: LoginType, event_store: Arc<Mutex<EventStore>>) { diff --git a/src/client/mod.rs b/src/client/mod.rs index 6b9be4c..ee99c64 100644 --- a/src/client/mod.rs +++ b/src/client/mod.rs @@ -1284,12 +1284,20 @@ fn handle_connection(connection: Arc<Mutex<Connection>>, fn handle_connection(connection: Arc<Mutex<Connection>>, login_type: LoginType, event_store: Arc<Mutex<EventStore>>, - receiver: Receiver<WebSocketStream>) { + mut receiver: Receiver<WebSocketStream>) { loop { - let event = { - let mut connection = connection.lock().unwrap(); + let event = receiver.recv_json(GatewayEvent::decode); + + let event = match connection.lock().unwrap().handle_event(event, &mut receiver) { + Ok(Some(x)) => match x { + (event, Some(new_receiver)) => { + receiver = new_receiver; - connection.receive() + event + }, + (event, None) => event, + }, + _ => continue, }; dispatch(event, |