#[repr(C, align(64))]pub struct SequencerLayout<const N: usize> {
pub header: LayoutHeader,
pub initialized: IndexbusAtomicU32,
pub pad0: u32,
pub pad_to_64: [u8; 40],
pub cursor: IndexbusAtomicU64,
pub pad_cursor: [u8; 56],
pub gating: [SequencerGatingCell; N],
}Expand description
Sequencer region: Disruptor-style sequencer + gating sequences (control + counters).
This is a new region layout (v1 append-only) and must not reinterpret any existing region.
Notes:
- The data/ring storage can be appended after the control block in future versions.
LayoutHeader.layout_bytesbounds all optional appended sections.
Fields§
§header: LayoutHeaderCommon region header (magic/version/capabilities/layout size).
initialized: IndexbusAtomicU320 = uninitialized, 1 = initializing, 2 = initialized
pad0: u32Padding (reserved).
pad_to_64: [u8; 40]Pad to 64 so the first counter starts at offset 64.
cursor: IndexbusAtomicU64Producer cursor (monotonic sequence).
pad_cursor: [u8; 56]Padding to keep the cursor in its own cache line.
gating: [SequencerGatingCell; N]Per-consumer gating sequences.
Implementations§
Source§impl<const N: usize> SequencerLayout<N>
impl<const N: usize> SequencerLayout<N>
Sourcepub const REQUIRED_CAPS: u32 = caps::INDEXBUS_CAP_SUPPORTS_SEQUENCER
pub const REQUIRED_CAPS: u32 = caps::INDEXBUS_CAP_SUPPORTS_SEQUENCER
Capabilities required for this region to be considered compatible.
Auto Trait Implementations§
impl<const N: usize> !Freeze for SequencerLayout<N>
impl<const N: usize> !RefUnwindSafe for SequencerLayout<N>
impl<const N: usize> Send for SequencerLayout<N>
impl<const N: usize> Sync for SequencerLayout<N>
impl<const N: usize> Unpin for SequencerLayout<N>
impl<const N: usize> UnwindSafe for SequencerLayout<N>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more