Provides a struct to help create mutable statics with lazy_static.
To create a mutable static simply put your lazystatic object inside of a MutStatic
:
``` rust
use mutstatic::MutStatic;
use std::mem;
// Declaring a MutStatic
lazystatic! {
pub static ref MYOBJECT: MutStatic
// Declaring a MutStatic which already has data
lazystatic! {
pub static ref MYOBJECT: MutStatic
fn main() { // Setting a MutStatic MY_OBJECT.set(MyObject::new()).unwrap();
// Using a MutStatic
{
let my_object = MY_OBJECT.read().unwrap();
let my_object = my_object.deref();
my_object.use();
}
// Using a MutStatic mutably
{
let mut my_object = MY_OBJECT.write().unwrap();
let mut my_object = my_object.deref_mut();
my_object.use_mut();
// Resetting a MutStatic
mem::replace(my_object, MyObject::new());
}
} ```