21 releases

0.0.117 Apr 20, 2024
0.0.116 Apr 20, 2024
0.0.108 Mar 30, 2024

#285 in Memory management

Download history 48/week @ 2024-07-22 20/week @ 2024-07-29 27/week @ 2024-08-05 18/week @ 2024-08-12 14/week @ 2024-08-19 54/week @ 2024-08-26 9/week @ 2024-09-02 19/week @ 2024-09-09 19/week @ 2024-09-16 58/week @ 2024-09-23 14/week @ 2024-09-30 9/week @ 2024-10-07 9/week @ 2024-10-14 14/week @ 2024-10-21 39/week @ 2024-10-28 17/week @ 2024-11-04

79 downloads per month
Used in 8 crates (2 directly)

MIT/Apache

1MB
19K SLoC

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

Dependencies

~260–730KB
~17K SLoC