mctp_rs/message_type/
mod.rs

1mod mctp_control;
2mod vendor_defined_pci;
3
4pub use mctp_control::*;
5pub use vendor_defined_pci::*;
6
7use crate::{MctpMedium, error::MctpPacketResult};
8
9pub trait MctpMessageHeaderTrait: Sized {
10    fn serialize<M: MctpMedium>(self, buffer: &mut [u8]) -> MctpPacketResult<usize, M>;
11
12    fn deserialize<M: MctpMedium>(buffer: &[u8]) -> MctpPacketResult<(Self, &[u8]), M>;
13}
14
15pub trait MctpMessageTrait<'buf>: Sized {
16    const MESSAGE_TYPE: u8;
17    type Header: MctpMessageHeaderTrait;
18
19    fn serialize<M: MctpMedium>(self, buffer: &mut [u8]) -> MctpPacketResult<usize, M>;
20
21    fn deserialize<M: MctpMedium>(
22        header: &Self::Header,
23        buffer: &'buf [u8],
24    ) -> MctpPacketResult<Self, M>;
25}