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