use std::collections::HashMap;
use super::StorageAdapter;
pub const STORAGE_ID: &str = "Memory";
#[derive(Debug, Default)]
pub struct Memory(HashMap<String, String>);
#[async_trait::async_trait]
impl StorageAdapter for Memory {
fn id(&self) -> &'static str {
STORAGE_ID
}
async fn get(&self, key: &str) -> crate::wallet::Result<Option<String>> {
Ok(self.0.get(key).cloned())
}
async fn set(&mut self, key: &str, record: String) -> crate::wallet::Result<()> {
self.0.insert(key.to_string(), record);
Ok(())
}
async fn batch_set(&mut self, records: HashMap<String, String>) -> crate::wallet::Result<()> {
self.0.extend(records.into_iter());
Ok(())
}
async fn remove(&mut self, key: &str) -> crate::wallet::Result<()> {
self.0.remove(key);
Ok(())
}
}