From 535fec66c905bf5401a092a7576ac0521ffc1cd1 Mon Sep 17 00:00:00 2001 From: Titouan Rigoudy Date: Sun, 7 Jan 2018 06:35:06 -0500 Subject: [PATCH] Implement Proto{De,En}code for RoomUserLeftResponse. --- src/proto/server/response.rs | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/proto/server/response.rs b/src/proto/server/response.rs index 7f8c940..4c56994 100644 --- a/src/proto/server/response.rs +++ b/src/proto/server/response.rs @@ -153,6 +153,10 @@ impl ProtoEncode for ServerResponse { encoder.encode_u32(CODE_ROOM_USER_JOINED)?; response.encode(encoder)?; } + ServerResponse::RoomUserLeftResponse(ref response) => { + encoder.encode_u32(CODE_ROOM_USER_LEFT)?; + response.encode(encoder)?; + } _ => { unimplemented!(); } @@ -217,6 +221,10 @@ impl ProtoDecode for ServerResponse { let response = RoomUserJoinedResponse::decode(decoder)?; ServerResponse::RoomUserJoinedResponse(response) } + CODE_ROOM_USER_LEFT => { + let response = RoomUserLeftResponse::decode(decoder)?; + ServerResponse::RoomUserLeftResponse(response) + } _ => { return Err(DecodeError::UnknownCodeError(code)); } @@ -1146,6 +1154,24 @@ impl ReadFromPacket for RoomUserLeftResponse { } } +impl ProtoEncode for RoomUserLeftResponse { + fn encode(&self, encoder: &mut ProtoEncoder) -> io::Result<()> { + encoder.encode_string(&self.room_name)?; + encoder.encode_string(&self.user_name) + } +} + +impl ProtoDecode for RoomUserLeftResponse { + fn decode(decoder: &mut ProtoDecoder) -> Result { + let room_name = decoder.decode_string()?; + let user_name = decoder.decode_string()?; + Ok(Self { + room_name, + user_name, + }) + } +} + /*===========* * USER INFO * *===========*/ @@ -1407,4 +1433,12 @@ mod tests { }, )) } + + #[test] + fn roundtrip_room_user_left() { + roundtrip(ServerResponse::RoomUserLeftResponse(RoomUserLeftResponse { + room_name: "red".to_string(), + user_name: "alice".to_string(), + })) + } }