#settings #save #struct #containing #user #serialization #home

cr_program_settings

一个简单的库,允许保存包含程序数据的结构体,以便持久化。

1个不稳定版本

0.1.2 2023年8月11日

#47 in #home

GPL-3.0-only

20KB
226

cr_program_settings

一个简化将包含程序设置的结构的保存到某个安全位置的库。目前,程序允许你给它一个结构体,它将使用库将该结构体保存在用户主目录中,文件名为使用库的程序名。这是一个非常基础的库,我计划在未来的其他项目中使用。

示例用法
use cr_program_settings::prelude::*;

 // create a struct we want to save, it needs to implement at a minimum of Serialize and Deserialize
 #[derive(Serialize,Deserialize, PartialEq, Debug)]
 struct Settings{
 setting1: u32,
 setting2: String,
 setting3: Vec<bool>,
 }

fn main() {
    let settings = Settings{
        setting1: 128,
        setting2: "this is a cool setting struct".to_string(),
        setting3: vec![false,true,false,false],
    };

    save_settings!(settings).expect("Settings were unable to be saved");

    // -- snip --

    let loaded_settings = load_settings!(Settings).expect("Unable to read settings file");

    assert_eq!(settings,loaded_settings);
}

依赖项

~0.6–8.5MB
~68K SLoC