#memory #pool #memory-buffer #thread-safe #global #temporary #acquire

yanked memory-pool

A global, thread-safe memory pool

Uses old Rust 2015

0.1.0 May 3, 2015

MIT license

8KB
155 lines

A global, thread-safe memory pool

A Rust library providing a global, thread-safe memory pool, ideal for when you need a temporary scratch buffer but you don't want to be constantly allocating memory.

memory_pool::borrow( |aux: &mut String| {
    aux.push_str( "Do you like cupcakes?" );
});
memory_pool::borrow( |vec: &mut Vec< u32 >| {
    vec.push( 1 );
    vec.push( 2 );
    vec.push( 3 );
});

You can also manually acquire and release memory:

let buffer: String = memory_pool::acquire();
buffer.push_str( "I like cupcakes!" );
memory_pool::release( buffer );

Usage

Add this to your Cargo.toml:

[dependencies]
memory-pool = "0.0.1"

Then add this to your crate root:

extern crate memory_pool;

lib.rs:

A Rust library providing a global, thread-safe memory pool, ideal for when you need a temporary scratch buffer but you don't want to be constantly allocating memory.

memory_pool::borrow( |aux: &mut String| {
    aux.push_str( "Do you like cupcakes?" );
});
memory_pool::borrow( |vec: &mut Vec< u32 >| {
    vec.push( 1 );
    vec.push( 2 );
    vec.push( 3 );
});

You can also manually acquire and release memory:

let buffer: String = memory_pool::acquire();
buffer.push_str( "I like cupcakes!" );
memory_pool::release( buffer );

No runtime deps