use crate::error::Error;
use crate::platform::{Map, MapType};
pub struct HashMap<K: Copy + Default, V: Copy + Default> {
map: Map<K, V>,
}
impl<K: Copy + Default, V: Copy + Default> HashMap<K, V> {
pub fn with_capacity(entries: u32) -> Result<Self, Error> {
Ok(Self {
map: Map::with_capacity(MapType::Hash, entries)?,
})
}
pub fn get(&self, key: K) -> Result<V, Error> {
self.map.get(&key)
}
pub fn insert(&self, key: K, val: V) -> Result<(), Error> {
self.map.set(&key, &val)
}
pub fn remove(&self, key: K) -> Result<(), Error> {
self.map.del(&key)
}
pub fn get_identifier(&self) -> u32 {
self.map.get_identifier()
}
}