Simple platform-agnostic Rust crate for managing application settings/preferences.
Install the crate as a dependency in your app's Cargo.toml file:
toml
[dependencies]
abserde = "0.5.1"
Import Abserde, associated definitions, and serde::Serialize, and serde::Deserialize:
rust
use abserde::*;
use serde::{Serialize, Deserialize};
Define a struct to store your app config. You must derive your struct from serde::Serialize and serde::Deserialize traits.
```rust use std::collections::HashMap;
struct MyConfig {
windowwidth: usize,
windowheight: usize,
windowx: usize,
windowy: usize,
theme: String,
user_data: HashMap
Create an Abserde instance to manage how your configuration is stored on disk:
rust
let my_abserde = Abserde::default();
Using Abserde in this way will use your crate as the name for the app config directory.
Alternatively, you can also pass options to Abserde to change the location or format of your config file:
rust
let my_abserde = Abserde {
app: "MyApp".to_string(),
location: Location::Auto,
format: Format::Json,
};
//! For the JSON format, you can pretty-print your config file, using either tabs or spaces:
rust
let my_abserde = Abserde {
app: "MyApp".to_string(),
location: Location::Auto,
format: Format::PrettyJson(PrettyJsonIndent::Tab),
};
rust
let my_abserde = Abserde {
app: "MyApp".to_string(),
location: Location::Auto,
format: Format::PrettyJson(PrettyJsonIndent::Spaces(4)),
};
Load data into config from disk:
rust
let my_config = MyConfig::load_config(&my_abserde)?;
Save config data to disk:
rust
my_config.save_config(&my_abserde)?;
Delete config file from disk:
rust
my_abserde.delete()?;