From a5654eddc91ff7482c2884a85bb99a86bab88b83 Mon Sep 17 00:00:00 2001 From: Titouan Rigoudy Date: Thu, 28 Apr 2016 18:41:55 +0200 Subject: [PATCH] Add RoomTickersResponse. --- src/proto/server/constants.rs | 1 + src/proto/server/response.rs | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/src/proto/server/constants.rs b/src/proto/server/constants.rs index 1f883a0..d7ab584 100644 --- a/src/proto/server/constants.rs +++ b/src/proto/server/constants.rs @@ -13,3 +13,4 @@ pub const CODE_PRIVILEGED_USERS: u32 = 69; pub const CODE_PARENT_MIN_SPEED: u32 = 83; pub const CODE_PARENT_SPEED_RATIO: u32 = 84; pub const CODE_WISHLIST_INTERVAL: u32 = 104; +pub const CODE_ROOM_TICKERS: u32 = 113; diff --git a/src/proto/server/response.rs b/src/proto/server/response.rs index 6ce415e..7e10a9b 100644 --- a/src/proto/server/response.rs +++ b/src/proto/server/response.rs @@ -28,6 +28,7 @@ pub enum ServerResponse { RoomLeaveResponse(RoomLeaveResponse), RoomListResponse(RoomListResponse), RoomMessageResponse(RoomMessageResponse), + RoomTickersResponse(RoomTickersResponse), RoomUserJoinedResponse(RoomUserJoinedResponse), RoomUserLeftResponse(RoomUserLeftResponse), UserStatusResponse(UserStatusResponse), @@ -76,6 +77,9 @@ impl FromPacket for ServerResponse { CODE_ROOM_MESSAGE => try_from_packet!(RoomMessageResponse, packet), + CODE_ROOM_TICKERS => + try_from_packet!(RoomTickersResponse, packet), + CODE_ROOM_USER_JOINED => try_from_packet!(RoomUserJoinedResponse, packet), @@ -492,6 +496,35 @@ impl FromPacket for RoomMessageResponse { } } +/*==============* + * ROOM MESSAGE * + *==============*/ + +#[derive(Debug)] +pub struct RoomTickersResponse { + pub room_name: String, + pub tickers: Vec<(String, String)> +} + +impl FromPacket for RoomTickersResponse { + fn from_packet(packet: &mut Packet) -> result::Result { + let room_name = try!(packet.read_str()); + + let num_tickers = try!(packet.read_uint()) as usize; + let mut tickers = Vec::new(); + for _ in 0..num_tickers { + let user_name = try!(packet.read_str()); + let message = try!(packet.read_str()); + tickers.push((user_name, message)) + } + + Ok(RoomTickersResponse { + room_name: room_name, + tickers: tickers, + }) + } +} + /*==================* * ROOM USER JOINED * *==================*/