diff options
author | metamuffin <metamuffin@disroot.org> | 2024-07-16 16:21:37 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-07-16 16:21:37 +0200 |
commit | 7c83fe7eeaac3736d5a59b270bbbbde59780e536 (patch) | |
tree | 65c59e07f7c72305690312b2d057a9b0d494a847 /light-client/src/network.rs | |
parent | 5cad8fad7c8e8b4358c9b0290c228ac9fac164f5 (diff) | |
download | hurrycurry-7c83fe7eeaac3736d5a59b270bbbbde59780e536.tar hurrycurry-7c83fe7eeaac3736d5a59b270bbbbde59780e536.tar.bz2 hurrycurry-7c83fe7eeaac3736d5a59b270bbbbde59780e536.tar.zst |
item rendering and movement
Diffstat (limited to 'light-client/src/network.rs')
-rw-r--r-- | light-client/src/network.rs | 50 |
1 files changed, 27 insertions, 23 deletions
diff --git a/light-client/src/network.rs b/light-client/src/network.rs index 47eb66ab..ed160773 100644 --- a/light-client/src/network.rs +++ b/light-client/src/network.rs @@ -75,37 +75,41 @@ impl Network { }) } pub fn poll(&mut self) { - self.queue_in.extend(match self.sock.read() { - Ok(Message::Text(packet)) => match serde_json::from_str(&packet) { - Ok(packet) => { - debug!("<- {packet:?}"); - Some(packet) - } - Err(e) => { - warn!("invalid json packet: {e:?}"); - None - } - }, - Ok(Message::Binary(packet)) => { - match bincode::decode_from_slice(&packet, BINCODE_CONFIG) { - Ok((packet, _)) => { + loop { + self.queue_in.extend(match self.sock.read() { + Ok(Message::Text(packet)) => match serde_json::from_str(&packet) { + Ok(packet) => { debug!("<- {packet:?}"); Some(packet) } Err(e) => { - warn!("invalid bincode packet: {e:?}"); + warn!("invalid json packet: {e:?}"); None } + }, + Ok(Message::Binary(packet)) => { + match bincode::decode_from_slice(&packet, BINCODE_CONFIG) { + Ok((packet, _)) => { + debug!("<- {packet:?}"); + Some(packet) + } + Err(e) => { + warn!("invalid bincode packet: {e:?}"); + None + } + } } - } - Ok(_) => None, - Err(e) => { - if let Some(e) = e.into_non_blocking() { - warn!("{e:?}"); + Ok(_) => None, + Err(e) => { + if let Some(e) = e.into_non_blocking() { + warn!("{e:?}"); + None + } else { + break; + } } - None - } - }); + }); + } for packet in self.queue_out.drain(..) { debug!("-> {packet:?}"); |