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.entries.insert(key, value);
}
state
}
pub fn set(&mut self, key: impl Into<String>, value: impl Into<String>) {
self.entries.insert(key.into(), value.into());
}
pub fn get(&self, key: &str) -> Option<&str> {
self.entries.get(key).map(|s: &String| s.as_str())
}
pub fn remove(&mut self, key: &str) -> Option<String> {
self.entries.remove(key)
}
pub fn clear(&mut self) {
self.entries.clear();
}
pub fn len(&self) -> usize {
self.entries.len()
}
pub fn is_empty(&self) -> bool {
self.entries.is_empty()
}
pub fn contains(&self, key: &str) -> bool {
self.entries.contains_key(key)
}
pub fn iter(&self) -> impl Iterator<Item = (&str, &str)> {
self.entries
.iter()
.map(|(k, v): (&String, &String)| (k.as_str(), v.as_str()))
}
}