open_dis_rust/common/
constants.rs1pub const MAX_PDU_SIZE_OCTETS: usize = 8192;
11pub const MAX_PDU_SIZE_BITS: usize = 65_536;
12pub const BITS_PER_BYTE: u16 = 8;
13
14pub const PDU_HEADER_SIZE: usize = 12;
16
17pub const MAX_ARTICULATION_PARAMS: usize = 64;
19
20pub const MAX_ENTITY_MARKING_LENGTH: usize = 32;
22
23#[must_use]
24pub const fn validate_pdu_size(size: usize) -> bool {
26 size <= MAX_PDU_SIZE_OCTETS
27}
28
29#[must_use]
30pub const fn total_pdu_size(payload_size: usize) -> usize {
32 PDU_HEADER_SIZE + payload_size
33}
34
35#[must_use]
36pub const fn validate_marking_length(len: usize) -> bool {
38 len <= MAX_ENTITY_MARKING_LENGTH
39}
40
41#[cfg(test)]
42mod tests {
43 use super::*;
44
45 #[test]
46 fn test_pdu_size_validation() {
47 assert!(validate_pdu_size(1000));
48 assert!(validate_pdu_size(MAX_PDU_SIZE_OCTETS));
49 assert!(!validate_pdu_size(MAX_PDU_SIZE_OCTETS + 1));
50 }
51
52 #[test]
53 fn test_total_pdu_size() {
54 assert_eq!(total_pdu_size(100), PDU_HEADER_SIZE + 100);
55 assert_eq!(total_pdu_size(0), PDU_HEADER_SIZE);
56 }
57
58 #[test]
59 fn test_marking_length_validation() {
60 assert!(validate_marking_length(31));
61 assert!(validate_marking_length(MAX_ENTITY_MARKING_LENGTH));
62 assert!(!validate_marking_length(MAX_ENTITY_MARKING_LENGTH + 1));
63 }
64}