use super::*;
use nom::number::complete::be_u16;
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct PeerLeave(pub u16);
impl FromBytes for PeerLeave {
named!(from_bytes<PeerLeave>, do_parse!(
tag!("\x62") >>
conference_id: be_u16 >>
tag!("\x01") >>
(PeerLeave(conference_id))
));
}
impl ToBytes for PeerLeave {
fn to_bytes<'a>(&self, buf: (&'a mut [u8], usize)) -> Result<(&'a mut [u8], usize), GenError> {
do_gen!(buf,
gen_be_u8!(0x62) >>
gen_be_u16!(self.0) >>
gen_be_u8!(0x01)
)
}
}
impl PeerLeave {
pub fn new(conference_id: u16) -> Self {
PeerLeave(conference_id)
}
}
#[cfg(test)]
mod tests {
use super::*;
encode_decode_test!(
tox_crypto::crypto_init().unwrap(),
peer_leave_encode_decode,
PeerLeave::new(1)
);
}