netlink_proto/protocol/
request.rs

1// SPDX-License-Identifier: MIT
2
3use std::fmt::Debug;
4
5use netlink_packet_core::NetlinkMessage;
6
7use crate::sys::SocketAddr;
8
9#[derive(Debug)]
10pub(crate) struct Request<T, M> {
11    pub metadata: M,
12    pub message: NetlinkMessage<T>,
13    pub destination: SocketAddr,
14}
15
16impl<T, M> From<(NetlinkMessage<T>, SocketAddr, M)> for Request<T, M>
17where
18    T: Debug,
19    M: Debug,
20{
21    fn from(parts: (NetlinkMessage<T>, SocketAddr, M)) -> Self {
22        Request {
23            message: parts.0,
24            destination: parts.1,
25            metadata: parts.2,
26        }
27    }
28}
29
30impl<T, M> From<Request<T, M>> for (NetlinkMessage<T>, SocketAddr, M)
31where
32    T: Debug,
33    M: Debug,
34{
35    fn from(req: Request<T, M>) -> (NetlinkMessage<T>, SocketAddr, M) {
36        (req.message, req.destination, req.metadata)
37    }
38}