#[allow(unused_imports)]
use super::*;
use crate::attribute::AttributeValue;
#[derive(Debug, Clone, PartialEq, Default)]
pub struct AttributeDefaultsMap {
defaults: DefaultsMap,
}
impl AttributeDefaultsMap {
#[allow(dead_code)]
pub(crate) fn new() -> Self {
Self {
defaults: DefaultsMap::new(),
}
}
pub(crate) fn from_map(defaults: DefaultsMap) -> Self {
Self { defaults }
}
#[inline]
#[must_use = "iterator is lazy and does nothing unless consumed"]
pub fn iter(&self) -> impl Iterator<Item = (&str, &AttributeValue)> {
self.defaults.iter().map(|(name, value)| (name.as_str(), value))
}
#[inline]
#[must_use = "return value should be used"]
pub fn len(&self) -> usize {
self.defaults.len()
}
#[inline]
#[must_use = "return value should be used"]
pub fn is_empty(&self) -> bool {
self.defaults.is_empty()
}
#[inline]
#[must_use = "return value should be used"]
pub fn get(&self, name: &str) -> Option<&AttributeValue> {
self.defaults.iter().find(|(n, _)| n.as_str() == name).map(|(_, v)| v)
}
}