SlotArena

Trait SlotArena 

Source
pub trait SlotArena: Send {
    // Required methods
    fn slot_bytes(&self) -> usize;
    fn num_slots(&self) -> usize;
    fn read_slot(&self, slot: usize, out: &mut [u8]) -> Result<(), Error>;
    fn write_slot(&mut self, slot: usize, bytes: &[u8]) -> Result<(), Error>;
}
Expand description

The generic paging core, lifted to atlas-tier (CUDA- and verbs-free). Re-exported under the atlas_tier names (no historical aliases). The hot tier: a RAM arena as a set of num_slots fixed-size slots. The cache peer implements this over its mmap’d MR (page-aligned → O_DIRECT-safe); in-process consumers use crate::VecSlotArena.

Required Methods§

Source

fn slot_bytes(&self) -> usize

Source

fn num_slots(&self) -> usize

Source

fn read_slot(&self, slot: usize, out: &mut [u8]) -> Result<(), Error>

Copy arena slot → out (for spilling a victim to disk). out.len() MUST equal slot_bytes().

Source

fn write_slot(&mut self, slot: usize, bytes: &[u8]) -> Result<(), Error>

Copy bytes → arena slot (for faulting a record back in). bytes.len() MUST equal slot_bytes().

Implementations on Foreign Types§

Source§

impl<T> SlotArena for Box<T>
where T: SlotArena + ?Sized,

Source§

fn slot_bytes(&self) -> usize

Source§

fn num_slots(&self) -> usize

Source§

fn read_slot(&self, slot: usize, out: &mut [u8]) -> Result<(), Error>

Source§

fn write_slot(&mut self, slot: usize, bytes: &[u8]) -> Result<(), Error>

Implementors§