plabble_codec/codec/response/
response_packet.rs1use crate::{
2 abstractions::MAC_SIZE,
3 codec::{header::ResponseHeader, ptp_packet::PtpPacket},
4};
5
6use super::ResponseBody;
7
8pub struct ResponsePacket {
16 pub header: ResponseHeader,
17 pub body: ResponseBody,
18 pub mac: Option<[u8; MAC_SIZE]>,
19}
20
21impl PtpPacket<ResponseHeader, ResponseBody> for ResponsePacket {
22 fn get_header(&self) -> &ResponseHeader {
23 &self.header
24 }
25
26 fn get_body(&self) -> &ResponseBody {
27 &self.body
28 }
29
30 fn new(header: ResponseHeader, body: ResponseBody, mac: Option<[u8; MAC_SIZE]>) -> Self {
31 Self { header, body, mac }
32 }
33
34 fn get_mac(&self) -> Option<&[u8; MAC_SIZE]> {
35 self.mac.as_ref()
36 }
37}