use crate::static_data::items::item::Item; use crate::static_data::libraries::data_library::DataLibrary; use std::collections::HashMap; #[derive(Debug)] pub struct ItemLibrary { map: HashMap, list: Vec, } impl ItemLibrary { pub fn new(capacity: usize) -> ItemLibrary { ItemLibrary { map: HashMap::with_capacity(capacity), list: Vec::with_capacity(capacity), } } } impl DataLibrary<'_, Item> for ItemLibrary { fn map(&self) -> &HashMap { &self.map } fn list_values(&self) -> &Vec { &self.list } fn get_modify(&mut self) -> (&mut HashMap, &mut Vec) { (&mut self.map, &mut self.list) } }