Browse Source

Implement Proto{De,En}code for PrivilegedUsersResponse.

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

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

@ -126,6 +126,10 @@ impl ProtoEncode for ServerResponse {
encoder.encode_u32(CODE_PEER_ADDRESS)?;
response.encode(encoder)?;
},
ServerResponse::PrivilegedUsersResponse(ref response) => {
encoder.encode_u32(CODE_PRIVILEGED_USERS)?;
response.encode(encoder)?;
},
_ => {
unimplemented!();
},
@ -162,6 +166,10 @@ impl ProtoDecode for ServerResponse {
let response = PeerAddressResponse::decode(decoder)?;
ServerResponse::PeerAddressResponse(response)
},
CODE_PRIVILEGED_USERS => {
let response = PrivilegedUsersResponse::decode(decoder)?;
ServerResponse::PrivilegedUsersResponse(response)
},
_ => {
return Err(DecodeError::UnknownCodeError(code));
},
@ -472,7 +480,6 @@ impl ProtoDecode for PeerAddressResponse {
}
}
/*==================*
* PRIVILEGED USERS *
*==================*/
@ -489,6 +496,21 @@ impl ReadFromPacket for PrivilegedUsersResponse {
}
}
impl ProtoEncode for PrivilegedUsersResponse {
fn encode(&self, encoder: &mut ProtoEncoder) -> Result<(), io::Error> {
encoder.encode_vec(&self.users)
}
}
impl ProtoDecode for PrivilegedUsersResponse {
fn decode(decoder: &mut ProtoDecoder) -> Result<Self, DecodeError> {
let users = decoder.decode_vec::<String>()?;
Ok(Self {
users: users,
})
}
}
/*===========*
* ROOM JOIN *
*===========*/
@ -926,4 +948,15 @@ mod tests {
port: 1337,
}))
}
#[test]
fn roundtrip_privileged_users() {
roundtrip(ServerResponse::PrivilegedUsersResponse(PrivilegedUsersResponse {
users: vec![
"alice".to_string(),
"bob".to_string(),
"chris".to_string(),
],
}))
}
}

Loading…
Cancel
Save