dis_rs/common/is_part_of/
writer.rs

1use crate::is_part_of::model::{IsPartOf, NamedLocationId, Relationship};
2use crate::{Serialize, SerializePdu, SupportedVersion};
3use bytes::{BufMut, BytesMut};
4
5impl SerializePdu for IsPartOf {
6    fn serialize_pdu(&self, _version: SupportedVersion, buf: &mut BytesMut) -> u16 {
7        let originating_bytes = self.originating_simulation_id.serialize(buf);
8        let receiving_bytes = self.receiving_entity_id.serialize(buf);
9        let relationship_bytes = self.relationship.serialize(buf);
10        let part_location_bytes = self.part_location.serialize(buf);
11        let named_location_bytes = self.named_location_id.serialize(buf);
12        let part_type_bytes = self.part_type.serialize(buf);
13
14        originating_bytes
15            + receiving_bytes
16            + relationship_bytes
17            + part_location_bytes
18            + named_location_bytes
19            + part_type_bytes
20    }
21}
22
23impl Serialize for Relationship {
24    fn serialize(&self, buf: &mut BytesMut) -> u16 {
25        buf.put_u16(self.nature.into());
26        buf.put_u16(self.position.into());
27
28        4
29    }
30}
31
32impl Serialize for NamedLocationId {
33    fn serialize(&self, buf: &mut BytesMut) -> u16 {
34        buf.put_u16(self.station_name.into());
35        buf.put_u16(self.station_number);
36
37        4
38    }
39}