use rusty_store::{manager::StorageManager, Storage, StoreHandle, Storing, StoringType};
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Default)]
pub struct MyStore {
pub count: u32,
}
impl Storing for MyStore {
fn store_type() -> StoringType {
StoringType::Data
}
}
pub trait MyStoreTrait {
fn increment_count(&mut self) -> Result<(), rusty_store::StoreError>;
}
impl MyStoreTrait for StorageManager<MyStore> {
fn increment_count(&mut self) -> Result<(), rusty_store::StoreError> {
self.modify_store(|store| store.count += 1)
}
}
fn main() {
let storage = Storage::new("com.github.mazynoah.storage".to_owned());
let handle = StoreHandle::<MyStore>::new("manager_trait");
let mut manager =
StorageManager::new(&storage, handle).expect("Failed to create StorageManager");
manager
.increment_count()
.expect("Failed to increment count");
let counter = manager.get_store();
println!("Count: {}", counter.count);
}