# musli-allocator [github](https://github.com/udoprog/musli) [crates.io](https://crates.io/crates/musli-allocator) [docs.rs](https://docs.rs/musli-allocator) [build status](https://github.com/udoprog/musli/actions?query=branch%3Amain) 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 ```rust 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); }); ``` [Müsli]: [`std::alloc::System`]: https://doc.rust-lang.org/std/alloc/struct.System.html