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