use super::*;
impl UseStorage {
pub(crate) fn new(key: &'static str, kind: UseStorageKind, initial: &str) -> Self {
let stored: Option<String> = read_storage(kind, key);
let value: String = stored.unwrap_or_else(|| initial.to_owned());
Self {
key,
value: Signal::create(value),
kind,
}
}
pub fn current(&self) -> String {
self.get_value().get()
}
pub fn set_value(&self, value: &str) {
write_storage(self.get_kind(), self.get_key(), value);
self.get_value().set(value.to_owned());
}
pub fn clear(&self) {
remove_storage(self.get_kind(), self.get_key());
self.get_value().set(String::new());
}
}