Crate appconfig[−][src]
A simple configuration file manager for desktop applications.
The configuration file is read from and written to the following locations.
Platform | Value | Example |
---|---|---|
Linux | $XDG_DATA_HOME or $HOME /.local/share | /home/alice/.local/share |
macOS | $HOME /Library/Application Support | /Users/Alice/Library/Application Support |
Windows | {FOLDERID_LocalAppData} | C:\Users\Alice\AppData\Local |
Usage
cargo add appconfig
use std::{cell::RefCell, rc::Rc}; use appconfig::AppConfigManager; use appconfig::serde::{Deserialize, Serialize}; #[derive(Debug, Serialize, Deserialize, PartialEq)] struct MyAppConfig { window_pos: (u32, u32), } impl Default for MyAppConfig { fn default() -> Self { Self { window_pos: (320, 280), } } } fn main() { let config = Rc::from(RefCell::from(MyAppConfig::default())); let manager = AppConfigManager::new( config.clone(), std::env!("CARGO_CRATE_NAME"), // CRATE_BIN_NAME etc.., "sumibi-yakitori", ); manager.save().unwrap(); manager.load().unwrap(); assert_eq!(*config.borrow(), MyAppConfig::default()); }
Re-exports
pub use serde; |
Structs
AppConfigManager | A manager that manages a single configuration file. |