handle/
main.rs

1use rusty_store::{Storage, StoreHandle, Storing};
2use serde::{Deserialize, Serialize};
3
4#[derive(Serialize, Deserialize, Default, Storing)]
5pub struct MyStore {
6    pub count: u32,
7}
8
9impl MyStore {
10    fn increment_count(&mut self) {
11        self.count += 1;
12    }
13}
14
15fn main() {
16    // Initialize the Storage with the defaults
17    let storage = Storage::new("com.github.mazynoah.storage");
18
19    // Create a handle for managing the store data.
20    let mut handle = StoreHandle::<MyStore>::new("handle");
21
22    // Read existing store from storage
23    storage
24        .read(&mut handle)
25        .expect("Failed to read from storage");
26
27    // Modify the store data
28    let counter = handle.get_store_mut();
29
30    counter.increment_count();
31    counter.increment_count();
32    counter.increment_count();
33
34    // Write changes to disk
35    storage
36        .write(&mut handle)
37        .expect("Failed to write to storage");
38
39    let counter = handle.get_store();
40
41    println!("Count: {}", counter.count);
42}