7个版本

0.2.1 2024年4月18日
0.2.0 2022年5月25日
0.1.4 2021年11月21日
0.1.3 2021年3月10日

157配置 中排名

Download history 2/week @ 2024-05-18 1/week @ 2024-05-25 3/week @ 2024-06-01 3/week @ 2024-06-08 39/week @ 2024-07-06

每月377次下载

MIT 许可证

10KB
150

Crates.io Documentation License Workflow Status

appconfig

桌面应用程序的简单配置文件管理器。

配置文件是从以下位置读取和写入的。

平台 示例
Linux $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

使用

cargo add appconfig serde
use std::{cell::RefCell, rc::Rc};
use appconfig::AppConfigManager;
use 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());
}

依赖项

~0.7–1.7MB
~33K SLoC