Crates.io | dirty_static |
lib.rs | dirty_static |
version | 0.1.1 |
source | src |
created_at | 2019-10-20 20:44:50.067577 |
updated_at | 2019-10-20 20:46:22.112175 |
description | A container for an immutable value that allows sneaky reloading in debug mode (via UnsafeCell) while keeping the data safe and constant in release mode. This allows you to tweak data while testing an application, without having that data be mutable when the application is released. Intended for use with game assets, but suitable for any interactive application. |
homepage | |
repository | https://github.com/mistodon/dirty_static |
max_upload_size | |
id | 174315 |
size | 10,149 |
This crate provides a container for a value, DirtyStatic
, which
allows mutation in debug mode (via UnsafeCell
), but not in
release mode.
This allows you to tweak data while testing an application, without having that data be mutable when the application is released.
There are also two features available:
force-dynamic
which allows replacing the value of a
DirtyStatic
even in release mode.force-static
which disallows replacing the value of a
DirtyStatic
even in debug mode.// In debug mode
use dirty_static::DirtyStatic;
let c = DirtyStatic::new(100);
unsafe {
c.replace(200);
}
assert_eq!(*c, 200);
// In release mode
use dirty_static::DirtyStatic;
let c = DirtyStatic::new(100);
unsafe {
c.replace(200);
}
assert_eq!(*c, 100);