1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
use crate::{ traits::{Emitable, Parseable}, DecodeError, }; use super::buffer::{NeighbourTableMessageBuffer, NEIGHBOUR_TABLE_HEADER_LEN}; #[derive(Debug, PartialEq, Eq, Clone)] pub struct NeighbourTableHeader { pub family: u8, } impl<T: AsRef<[u8]>> Parseable<NeighbourTableMessageBuffer<T>> for NeighbourTableHeader { fn parse(buf: &NeighbourTableMessageBuffer<T>) -> Result<Self, DecodeError> { Ok(Self { family: buf.family(), }) } } impl Emitable for NeighbourTableHeader { fn buffer_len(&self) -> usize { NEIGHBOUR_TABLE_HEADER_LEN } fn emit(&self, buffer: &mut [u8]) { let mut packet = NeighbourTableMessageBuffer::new(buffer); packet.set_family(self.family); } }