Skip to main content

DevelopmentNodeEnvironment_MicrosoftVSCodeDependency_22NodeVersion_Bundle_Clean_Debug_ElectronProfile_EsbuildCompiler_Mountain/IPC/WindServiceAdapters/
WindStorageService.rs

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