use toxcore::binary_io::*;
use toxcore::crypto_core::*;
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct LanDiscovery {
pub pk: PublicKey,
}
impl ToBytes for LanDiscovery {
fn to_bytes<'a>(&self, buf: (&'a mut [u8], usize)) -> Result<(&'a mut [u8], usize), GenError> {
do_gen!(buf,
gen_be_u8!(0x21) >>
gen_slice!(self.pk.as_ref())
)
}
}
impl FromBytes for LanDiscovery {
named!(from_bytes<LanDiscovery>, do_parse!(
tag!("\x21") >>
pk: call!(PublicKey::from_bytes) >>
(LanDiscovery { pk })
));
}
#[cfg(test)]
mod tests {
use toxcore::dht::packet::lan_discovery::*;
encode_decode_test!(
lan_discovery_encode_decode,
LanDiscovery {
pk: gen_keypair().0
}
);
}