musli-allocator 0.0.117

Allocators for Müsli.
Documentation
use musli::{Allocator, Buf};

fn basic_allocations<A: Allocator>(alloc: &A) {
    let mut a = alloc.alloc().unwrap();
    let mut b = alloc.alloc().unwrap();

    b.write(b"He11o");

    assert_eq!(b.as_slice(), b"He11o");
    assert_eq!(b.len(), 5);

    a.write(b.as_slice());

    assert_eq!(a.as_slice(), b"He11o");
    assert_eq!(a.len(), 5);

    a.write(b" W0rld");

    assert_eq!(a.as_slice(), b"He11o W0rld");
    assert_eq!(a.len(), 11);

    let mut c = alloc.alloc().unwrap();
    c.write(b"!");
    assert_eq!(c.len(), 1);

    a.write(c.as_slice());
    assert_eq!(a.as_slice(), b"He11o W0rld!");
    assert_eq!(a.len(), 12);
}

#[test]
fn alloc_basic() {
    let alloc = crate::System::new();
    basic_allocations(&alloc);
}

#[test]
fn nostd_basic() {
    let mut buf = crate::StackBuffer::<4096>::new();
    let alloc = crate::Stack::new(&mut buf);
    basic_allocations(&alloc);
}