musli-allocator

Crates.iomusli-allocator
lib.rsmusli-allocator
version0.0.117
sourcesrc
created_at2024-03-20 01:27:44.169845
updated_at2024-04-20 08:46:49.182487
descriptionAllocators for Müsli.
homepagehttps://github.com/udoprog/musli
repositoryhttps://github.com/udoprog/musli
max_upload_size
id1179882
size53,723
John-John Tedro (udoprog)

documentation

https://docs.rs/musli

README

musli-allocator

github crates.io docs.rs build status

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};

musli_allocator::with(|alloc| {
    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);
});
Commit count: 755

cargo fmt