dis_rs/common/collision/
writer.rs

1use crate::common::collision::model::Collision;
2use crate::common::{Serialize, SerializePdu, SupportedVersion};
3use bytes::{BufMut, BytesMut};
4
5impl SerializePdu for Collision {
6    fn serialize_pdu(&self, _version: SupportedVersion, buf: &mut BytesMut) -> u16 {
7        let issuing_id_bytes = self.issuing_entity_id.serialize(buf);
8        let colliding_id_bytes = self.colliding_entity_id.serialize(buf);
9        let event_id_bytes = self.event_id.serialize(buf);
10        buf.put_u8(self.collision_type.into());
11        buf.put_u8(0u8);
12        let velocity_bytes = self.velocity.serialize(buf);
13        buf.put_f32(self.mass);
14        let location_bytes = self.location.serialize(buf);
15
16        issuing_id_bytes
17            + colliding_id_bytes
18            + event_id_bytes
19            + 2
20            + velocity_bytes
21            + 4
22            + location_bytes
23    }
24}