dis_rs/common/fire/
writer.rs

1use crate::common::fire::model::Fire;
2use crate::common::{Serialize, SerializePdu, SupportedVersion};
3use bytes::{BufMut, BytesMut};
4
5impl SerializePdu for Fire {
6    fn serialize_pdu(&self, _version: SupportedVersion, buf: &mut BytesMut) -> u16 {
7        let firing_entity_id_bytes = self.firing_entity_id.serialize(buf);
8        let target_entity_id_bytes = self.target_entity_id.serialize(buf);
9        let munition_id_bytes = self.entity_id.serialize(buf);
10        let event_id_bytes = self.event_id.serialize(buf);
11        buf.put_u32(self.fire_mission_index);
12        let location_in_world_bytes = self.location_in_world.serialize(buf);
13        let descriptor_bytes = self.descriptor.serialize(buf);
14        let velocity_bytes = self.velocity.serialize(buf);
15        buf.put_f32(self.range);
16
17        firing_entity_id_bytes
18            + target_entity_id_bytes
19            + munition_id_bytes
20            + event_id_bytes
21            + 4
22            + location_in_world_bytes
23            + descriptor_bytes
24            + velocity_bytes
25            + 4
26    }
27}