pub trait NetlinkProtocol: Debug + Sized
{
type MessageType: Debug;
#[doc(hidden)]
const Protocol: c_int;
#[doc(hidden)]
fn message_type(message_type: NetlinkMessageType) -> Self::MessageType;
fn new_acknowledge_message<Body: NetlinkRequestMessageBody>(message_type: Self::MessageType, flags: NetlinkAcknowledgeMessageFlags, body: Body) -> NetlinkRequestMessage<Body>;
fn new_delete_request_message<Body: NetlinkRequestMessageBody>(message_type: Self::MessageType, flags: NetlinkDeleteRequestMessageFlags, body: Body) -> NetlinkRequestMessage<Body>;
fn new_get_request_message<Body: NetlinkRequestMessageBody>(message_type: Self::MessageType, flags: NetlinkGetRequestMessageFlags, body: Body) -> NetlinkRequestMessage<Body>;
fn new_set_request_message<Body: NetlinkRequestMessageBody>(message_type: Self::MessageType, flags: NetlinkSetRequestMessageFlags, body: Body) -> NetlinkRequestMessage<Body>;
fn new_new_request_message<Body: NetlinkRequestMessageBody>(message_type: Self::MessageType, flags: NetlinkNewRequestMessageFlags, body: Body) -> NetlinkRequestMessage<Body>;
#[inline(always)]
fn make_request_and_get_acknowledgment_or_error<Body: NetlinkRequestMessageBody>(netlink_socket_file_descriptor: &mut NetlinkSocketFileDescriptor<Self>, mut request: NetlinkRequestMessage<Body>) -> Result<(), Errno>
{
let sequence_number = netlink_socket_file_descriptor.send_request(&mut request).expect("Send a request");
let message_identification = MultipartMessagePartIdentification::from_linux_kernel(sequence_number);
let mut reply_receiver = AcnowledgmentOnlyReplyReceiver::new(message_identification);
netlink_socket_file_descriptor.receive_replies(&mut reply_receiver);
reply_receiver.acknowledgment()
}
}