dis_rs/common/resupply_offer/
writer.rs

1use crate::common::{Serialize, SerializePdu, SupportedVersion};
2use crate::resupply_offer::model::ResupplyOffer;
3use bytes::{BufMut, BytesMut};
4
5impl SerializePdu for ResupplyOffer {
6    fn serialize_pdu(&self, _version: SupportedVersion, buf: &mut BytesMut) -> u16 {
7        let requesting_id_bytes = self.requesting_id.serialize(buf);
8        let servicing_id_bytes = self.servicing_id.serialize(buf);
9        buf.put_u8(self.supplies.len() as u8);
10        buf.put_u8(0u8);
11        buf.put_u16(0u16);
12        let supply_quantity_bytes = self
13            .supplies
14            .iter()
15            .map(|sq| sq.serialize(buf))
16            .sum::<u16>();
17
18        requesting_id_bytes + servicing_id_bytes + 4 + supply_quantity_bytes
19    }
20}