2020-06-15 20:55:29 +00:00
|
|
|
use ruffle_core::backend::storage::StorageBackend;
|
|
|
|
use web_sys::Storage;
|
|
|
|
|
|
|
|
pub struct LocalStorageBackend {
|
|
|
|
storage: Storage,
|
2020-06-15 23:54:00 +00:00
|
|
|
prefix: String,
|
2020-06-15 20:55:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
impl LocalStorageBackend {
|
2020-06-15 23:54:00 +00:00
|
|
|
pub(crate) fn new(storage: Storage, prefix: String) -> Self {
|
2020-06-15 23:59:06 +00:00
|
|
|
LocalStorageBackend { storage, prefix }
|
2020-06-15 20:55:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
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))
|
|
|
|
.unwrap()
|
2020-06-15 20:55:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
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()
|
2020-06-15 20:55:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
fn remove_key(&mut self, name: &str) {
|
2020-06-15 23:54:00 +00:00
|
|
|
let _ = self.storage.delete(&format!("{}-{}", self.prefix, name));
|
2020-06-15 20:55:29 +00:00
|
|
|
}
|
|
|
|
}
|