use super::*;
impl HmrState {
pub fn new() -> Self {
Self::default()
}
pub fn from_entries<I>(entries: I) -> Self
where
I: IntoIterator<Item = (String, String)>,
{
let mut state: Self = Self::new();
for (key, value) in entries {
state.get_mut_entries().insert(key, value);
}
state
}
pub fn set<K, V>(&mut self, key: K, value: V)
where
K: Into<String>,
V: Into<String>,
{
self.get_mut_entries().insert(key.into(), value.into());
}
pub fn get(&self, key: &str) -> Option<&str> {
self.get_entries().get(key).map(|s: &String| s.as_str())
}
pub fn remove(&mut self, key: &str) -> Option<String> {
self.get_mut_entries().remove(key)
}
pub fn clear(&mut self) {
self.get_mut_entries().clear();
}
pub fn len(&self) -> usize {
self.get_entries().len()
}
pub fn is_empty(&self) -> bool {
self.get_entries().is_empty()
}
pub fn contains(&self, key: &str) -> bool {
self.get_entries().contains_key(key)
}
pub fn iter(&self) -> impl Iterator<Item = (&str, &str)> {
self.get_entries()
.iter()
.map(|(k, v): (&String, &String)| (k.as_str(), v.as_str()))
}
}