#[repr(C, align(64))]pub struct FatLineItem {
pub n_items: u32,
pub reserved: u32,
pub items: [LineItem; 3],
pub _pad: [u8; 8],
}Expand description
64-byte cache-line-sized payload carrying up to LINE_ITEMS =
3 LineItem payloads plus a count. The deque-family hybrid
SharedDequeFcl uses this as the slot
type for counter-only Chase-Lev with K_inner = 3: each push
publishes 3 items in one cache-line write, with NO per-slot
atomic and ONE owner-private bottom store amortized across the
whole batch.
Layout:
n_items(4 B): count of valid items initems(1..=3)reserved(4 B): caller-use tag / cache-line alignmentitems(48 B): theLineItempayloads_pad(8 B): tail padding to round to exactly 64 B
Fields§
§n_items: u32Number of valid items in items (1..=LINE_ITEMS).
reserved: u32Reserved for caller use (variant tag / numa hint / etc.).
items: [LineItem; 3]Up to LINE_ITEMS caller payloads.
_pad: [u8; 8]Trailing padding to round the struct to exactly 64 B.
Implementations§
Source§impl FatLineItem
impl FatLineItem
Sourcepub fn from_items(items: &[LineItem]) -> Result<Self, PushError>
pub fn from_items(items: &[LineItem]) -> Result<Self, PushError>
Build a fat item from a slice of up to LINE_ITEMS
LineItem values. Returns PushError::TooManyItems if
the slice has more than LINE_ITEMS elements.
Sourcepub fn live_items(&self) -> &[LineItem]
pub fn live_items(&self) -> &[LineItem]
Borrow the valid items (&items[..n_items]).
Trait Implementations§
Source§impl Clone for FatLineItem
impl Clone for FatLineItem
Source§fn clone(&self) -> FatLineItem
fn clone(&self) -> FatLineItem
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for FatLineItem
Source§impl Debug for FatLineItem
impl Debug for FatLineItem
Source§impl Default for FatLineItem
impl Default for FatLineItem
Source§fn default() -> FatLineItem
fn default() -> FatLineItem
Returns the “default value” for a type. Read more
impl Eq for FatLineItem
Source§impl Marshal for FatLineItem
impl Marshal for FatLineItem
Source§const PAYLOAD_BYTES: usize = 64
const PAYLOAD_BYTES: usize = 64
Exact byte width of the marshalled form.
Source§impl PartialEq for FatLineItem
impl PartialEq for FatLineItem
impl StructuralPartialEq for FatLineItem
Auto Trait Implementations§
impl Freeze for FatLineItem
impl RefUnwindSafe for FatLineItem
impl Send for FatLineItem
impl Sync for FatLineItem
impl Unpin for FatLineItem
impl UnsafeUnpin for FatLineItem
impl UnwindSafe for FatLineItem
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