use std::sync::atomic::AtomicU64;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct MessageHeader {
pub committed: u8,
pub header_type: HeaderType,
pub message_type: u16,
pub length: u32,
pub timestamp_ns: u64,
}
#[repr(u8)]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum HeaderType {
Channel = 0,
User = 1,
Skip = 2,
Roll = 3,
}
#[repr(C)]
#[derive(Debug)]
pub(crate) struct ChannelHeader {
pub write_position: AtomicU64,
pub message_count: AtomicU64,
pub channel_sequence: u64,
pub region_size: u32,
pub mtu: u32,
pub channel_name: [u8; 32], }
const _: () = {
assert!(size_of::<MessageHeader>() == 16);
assert!(size_of::<ChannelHeader>() == 64);
assert!(align_of::<MessageHeader>() == 8);
assert!(align_of::<ChannelHeader>() == 8);
};