Crate musli_allocator

source ·
Expand description

github crates.io docs.rs

Allocation support for Müsli.

This crate contains two types of allocators:

  • The System allocator, which uses the system allocation facilities. Particularly std::alloc::System.
  • The Stack allocator, which can allocate buffers from a fixed-size slice.

§Examples

use musli::{Allocator, Buf};

let mut buf = musli_allocator::buffer();
let alloc = musli_allocator::new(&mut buf);

let mut a = alloc.alloc().expect("allocation a failed");
let mut b = alloc.alloc().expect("allocation b failed");

b.write(b"He11o");
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().expect("allocation c failed");
c.write(b"!");
a.write(c.as_slice());

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

Structs§

  • An allocator which cannot allocate anything.
  • A no-std compatible fixed-memory allocator that can be used with the musli crate.
  • A buffer that can be used to store data on the stack.
  • Systemalloc
    Buffer used in combination with an Allocator.
  • A dynamic buffer allocated on the heap.

Constants§

Functions§

  • Construct a new default buffer.
  • Construct a new default allocator.

Type Aliases§