dis_rs/common/resupply_cancel/
model.rs1use crate::common::model::{EntityId, PduBody};
2use crate::common::{BodyInfo, Interaction};
3use crate::enumerations::PduType;
4use crate::resupply_cancel::builder::ResupplyCancelBuilder;
5#[cfg(feature = "serde")]
6use serde::{Deserialize, Serialize};
7
8const RESUPPLY_CANCEL_BASE_BODY_LENGTH: u16 = 12;
9
10#[derive(Clone, Debug, Default, PartialEq)]
14#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
15pub struct ResupplyCancel {
16 pub requesting_id: EntityId,
17 pub servicing_id: EntityId,
18}
19
20impl ResupplyCancel {
21 #[must_use]
22 pub fn builder() -> ResupplyCancelBuilder {
23 ResupplyCancelBuilder::new()
24 }
25
26 #[must_use]
27 pub fn into_builder(self) -> ResupplyCancelBuilder {
28 ResupplyCancelBuilder::new_from_body(self)
29 }
30
31 #[must_use]
32 pub fn into_pdu_body(self) -> PduBody {
33 PduBody::ResupplyCancel(self)
34 }
35}
36
37impl BodyInfo for ResupplyCancel {
38 fn body_length(&self) -> u16 {
39 RESUPPLY_CANCEL_BASE_BODY_LENGTH
40 }
41
42 fn body_type(&self) -> PduType {
43 PduType::ResupplyCancel
44 }
45}
46
47impl Interaction for ResupplyCancel {
48 fn originator(&self) -> Option<&EntityId> {
49 Some(&self.requesting_id)
50 }
51
52 fn receiver(&self) -> Option<&EntityId> {
53 Some(&self.servicing_id)
54 }
55}