netlink_packet_route/link/
wireless.rs

1// SPDX-License-Identifier: MIT
2
3use netlink_packet_utils::{DecodeError, Emitable, Parseable};
4
5// Place holder for kernel code is `struct iw_event`
6#[derive(Debug, PartialEq, Eq, Clone, Default)]
7#[non_exhaustive]
8pub struct LinkWirelessEvent(Vec<u8>);
9
10impl<T: AsRef<[u8]> + ?Sized> Parseable<T> for LinkWirelessEvent {
11    fn parse(buf: &T) -> Result<Self, DecodeError> {
12        Ok(LinkWirelessEvent(buf.as_ref().to_vec()))
13    }
14}
15
16impl Emitable for LinkWirelessEvent {
17    fn buffer_len(&self) -> usize {
18        self.0.len()
19    }
20
21    fn emit(&self, buffer: &mut [u8]) {
22        buffer.copy_from_slice(self.0.as_slice())
23    }
24}