Browse Source

Implement Proto{De,En}code for RoomUserLeftResponse.

wip
Titouan Rigoudy 7 years ago
parent
commit
535fec66c9
1 changed files with 34 additions and 0 deletions
  1. +34
    -0
      src/proto/server/response.rs

+ 34
- 0
src/proto/server/response.rs View File

@ -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<Self, DecodeError> {
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(),
}))
}
}

Loading…
Cancel
Save