prefs 0.1.2

Type-safe macOS preferences library
use prefs::{Key, Preferences};

const VOLUME: Key<f64> = Key::new("volume");
const LAUNCHES: Key<i64> = Key::new("launches");
const DARK_MODE: Key<bool> = Key::new("dark_mode");

#[allow(clippy::print_stdout)]
fn main() -> prefs::Result<()> {
    let prefs = Preferences::new("com.example.MyApp")?;

    let volume = prefs.get_or(VOLUME, 1.0)?;
    prefs.set(VOLUME, &(volume * 0.9))?;

    let launches = prefs.get_or(LAUNCHES, 0)?;
    prefs.set(LAUNCHES, &(launches + 1))?;

    let dark_mode = prefs.get_or(DARK_MODE, false)?;
    println!("dark_mode = {dark_mode}");

    if prefs.contains(VOLUME)? {
        prefs.remove(VOLUME)?;
    }

    Ok(())
}