ruffle/web/src/storage.rs

32 lines
825 B
Rust
Raw Normal View History

use ruffle_core::backend::storage::StorageBackend;
use web_sys::Storage;
pub struct LocalStorageBackend {
storage: Storage,
prefix: String,
}
impl LocalStorageBackend {
pub(crate) fn new(storage: Storage, prefix: String) -> Self {
2020-06-15 23:59:06 +00:00
LocalStorageBackend { storage, prefix }
}
}
impl StorageBackend for LocalStorageBackend {
fn get_string(&self, name: &str) -> Option<String> {
2020-06-15 23:59:06 +00:00
self.storage
.get(&format!("{}-{}", self.prefix, name))
2020-06-21 20:10:20 +00:00
.unwrap_or_default()
}
fn put_string(&mut self, name: &str, value: String) -> bool {
2020-06-15 23:59:06 +00:00
self.storage
.set(&format!("{}-{}", self.prefix, name), &value)
.is_ok()
}
fn remove_key(&mut self, name: &str) {
let _ = self.storage.delete(&format!("{}-{}", self.prefix, name));
}
}