1pub mod loader;
2pub mod migrator;
3pub mod persistor;
4pub mod profile;
5pub mod scope;
6pub mod store;
7pub mod version;
8
9#[cfg(test)]
10mod shared_test {
11 use crate::{migrator::NoMigrator, persistor::json_persistor, profile::Profile, scope::Scope};
12 use serde::{Deserialize, Serialize};
13
14 #[derive(Serialize, Deserialize, Clone)]
16 pub struct Config {
17 user: String,
18 }
19
20 impl Default for Config {
21 fn default() -> Self {
22 Config {
23 user: "Player".to_owned(),
24 }
25 }
26 }
27
28 type ProfileConfig = Profile<Config>;
29
30 #[tokio::test]
31 async fn test_profile() {
32 let loader = ProfileConfig::load(
33 NoMigrator,
34 json_persistor("foobar".to_string(), Scope::Dot),
35 0,
36 )
37 .await
38 .unwrap();
39
40 println!(
41 "{:?}",
42 loader.get(|profile| profile.config.user.clone()).await
43 ); loader
45 .set(|profile| profile.config.user = "NewPlayer".to_owned())
46 .await
47 .unwrap();
48 println!(
49 "{:?}",
50 loader.get(|profile| profile.config.user.clone()).await
51 ); }
53}