LayoutHeader

Struct LayoutHeader 

Source
#[repr(C)]
pub struct LayoutHeader { pub magic: u32, pub version: u16, pub flags: u16, pub capabilities: u32, pub layout_bytes: u32, }
Expand description

Shared-memory layout header for ABI/version checks.

Keep this at the start of any region you expect to map across processes (and potentially across versions).

Fields§

§magic: u32

Magic value identifying an IndexBus-mapped region.

§version: u16

ABI version number.

§flags: u16

Layout flags (reserved for future use).

§capabilities: u32

Capability bitset indicating which optional features/sections are present.

§layout_bytes: u32

v1: total size in bytes of the shared layout that starts with this header.

Initializers should set this to the full byte length of the mapped layout they created. Consumers should validate that their mapping is at least this length before accessing appended sections.

Implementations§

Source§

impl LayoutHeader

Source

pub const fn new_v1(capabilities: u32, flags: u16) -> Self

Construct a v1 header with layout_bytes left as 0.

Initializers should fill layout_bytes after they know the full mapping length.

Source

pub const fn new_v1_with_layout_bytes( capabilities: u32, flags: u16, layout_bytes: u32, ) -> Self

Construct a v1 header with an explicit layout_bytes value.

Source

pub const fn is_compatible_v1(&self) -> bool

Returns true if this header matches the v1 magic and version.

This only checks the ABI identifier and version. Callers should separately validate layout_bytes and required capabilities.

Trait Implementations§

Source§

impl Clone for LayoutHeader

Source§

fn clone(&self) -> LayoutHeader

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for LayoutHeader

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.