zenoh_protocol/common/
mod.rs1pub mod extension;
15pub use extension::*;
16
17pub mod imsg {
22 pub const HEADER_BITS: u8 = 5;
24 pub const HEADER_MASK: u8 = !(0xff << HEADER_BITS);
25
26 pub const fn mid(header: u8) -> u8 {
27 header & HEADER_MASK
28 }
29
30 pub const fn flags(header: u8) -> u8 {
31 header & !HEADER_MASK
32 }
33
34 pub const fn has_flag(byte: u8, flag: u8) -> bool {
35 byte & flag != 0
36 }
37
38 pub const fn unset_flag(mut byte: u8, flag: u8) -> u8 {
39 byte &= !flag;
40 byte
41 }
42
43 pub const fn set_flag(mut byte: u8, flag: u8) -> u8 {
44 byte = unset_flag(byte, flag);
45 byte |= flag;
46 byte
47 }
48
49 pub const fn set_bitfield(mut byte: u8, value: u8, mask: u8) -> u8 {
50 byte = unset_flag(byte, mask);
51 byte |= value;
52 byte
53 }
54
55 pub const fn has_option(options: u64, flag: u64) -> bool {
56 options & flag != 0
57 }
58}