netlink_packet_route/rtnl/neighbour_table/
header.rs1use netlink_packet_utils::{
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>>
16 for NeighbourTableHeader
17{
18 fn parse(
19 buf: &NeighbourTableMessageBuffer<T>,
20 ) -> Result<Self, DecodeError> {
21 Ok(Self {
22 family: buf.family(),
23 })
24 }
25}
26
27impl Emitable for NeighbourTableHeader {
28 fn buffer_len(&self) -> usize {
29 NEIGHBOUR_TABLE_HEADER_LEN
30 }
31
32 fn emit(&self, buffer: &mut [u8]) {
33 let mut packet = NeighbourTableMessageBuffer::new(buffer);
34 packet.set_family(self.family);
35 }
36}