Skip to main content

Mountain/IPC/WindServiceAdapters/
WindStorageService.rs

1#![allow(non_snake_case)]
2
3//! Wind-shaped storage service: get / set against the
4//! injected `StorageProvider` trait.
5
6use std::sync::Arc;
7
8use CommonLibrary::{Error::CommonError::CommonError, Storage::StorageProvider::StorageProvider};
9
10pub struct Struct {
11	pub(super) provider:Arc<dyn StorageProvider>,
12}
13
14impl Struct {
15	pub fn new(provider:Arc<dyn StorageProvider>) -> Self { Self { provider } }
16
17	pub async fn get(&self, key:String) -> Result<serde_json::Value, String> {
18		let value = self
19			.provider
20			.GetStorageValue(false, &key)
21			.await
22			.map_err(|e:CommonError| e.to_string())?
23			.ok_or_else(|| "Storage key not found".to_string())?;
24		Ok(value)
25	}
26
27	pub async fn set(&self, key:String, value:serde_json::Value) -> Result<(), String> {
28		self.provider
29			.UpdateStorageValue(false, key.to_string(), Some(value))
30			.await
31			.map_err(|e:CommonError| e.to_string())
32	}
33}