Struct byte_slab::slab_box::SlabBox[][src]

pub struct SlabBox<const N: usize, const SZ: usize> { /* fields omitted */ }
Expand description

An owned, BSlab allocated chunk of bytes.

SlabBoxs implement the Deref and DerefMut traits for access to the underlying allocation

Example

use byte_slab::BSlab;
use std::thread::spawn;

static SLAB: BSlab<4, 128> = BSlab::new();

fn main() {
    // Initialize the byte slab
    SLAB.init().unwrap();

    let mut box_1 = SLAB.alloc_box().unwrap();

    // Fill
    assert_eq!(box_1.len(), 128);
    box_1.iter_mut().enumerate().for_each(|(i, x)| *x = i as u8);

    // We can now send the box to another thread
    let hdl = spawn(move || {
        box_1.iter().enumerate().for_each(|(i, x)| assert_eq!(i as u8, *x));
    });

    hdl.join();
}

Implementations

Convert the SlabBox into a SlabArc.

This loses the ability to mutate the data within the allocation, but the may now be shared to multiple locations using reference counts

Trait Implementations

The resulting type after dereferencing.

Dereferences the value.

Mutably dereferences the value.

Executes the destructor for this type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.