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)?; encoder.encode_u32(CODE_PEER_ADDRESS)?;
response.encode(encoder)?; response.encode(encoder)?;
}, },
ServerResponse::PrivilegedUsersResponse(ref response) => {
encoder.encode_u32(CODE_PRIVILEGED_USERS)?;
response.encode(encoder)?;
},
_ => { _ => {
unimplemented!(); unimplemented!();
}, },
@ -162,6 +166,10 @@ impl ProtoDecode for ServerResponse {
let response = PeerAddressResponse::decode(decoder)?; let response = PeerAddressResponse::decode(decoder)?;
ServerResponse::PeerAddressResponse(response) ServerResponse::PeerAddressResponse(response)
}, },
CODE_PRIVILEGED_USERS => {
let response = PrivilegedUsersResponse::decode(decoder)?;
ServerResponse::PrivilegedUsersResponse(response)
},
_ => { _ => {
return Err(DecodeError::UnknownCodeError(code)); return Err(DecodeError::UnknownCodeError(code));
}, },
@ -472,7 +480,6 @@ impl ProtoDecode for PeerAddressResponse {
} }
} }
/*==================* /*==================*
* PRIVILEGED USERS * * 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 * * ROOM JOIN *
*===========*/ *===========*/
@ -926,4 +948,15 @@ mod tests {
port: 1337, 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