# tuna
Tuna is a tool for managing CVARs during game development, as a set of global
global variables, on which manipulation can be built.
At the core, the goal of tuna is to be *easy* to use, while avoiding unsafe
code.
This is how you use it:
``` rust
extern crate tuna;
const ENABLE_LOGGING: tuna::Boolean = tuna::Boolean::new("logging", "enable", false);
fn main() {
ENABLE_LOGGING.register();
for i in 0..10 {
eprintln!("xx");
if (ENABLE_LOGGING.read()) {
eprintln!("looping once");
}
if i == 5 {
ENABLE_LOGGING.write(true);
}
}
}
```
The register call can be omitted, at some performance cost during the first
read.
There's also a utility macro to create a category more easily:
``` rust
extern crate tuna;
#[tuna::tuna]
mod logging {
pub(super) const ENABLE: bool = false;
}
fn main() {
logging::register();
for i in 0..10 {
if (logging::ENABLE.read()) {
eprintln!("looping once");
}
if i == 5 {
logging::ENABLE.write(true);
}
}
}
```
Note that `tuna` is a work in progress! I'm working on it due to a need, but I
want to dogfood it while I build it - not build a whole thing on its own.
## Alternatives:
* [cvar](https://crates.io/crates/cvar) - much more customizable, less batteries-included