use crate::static_data::libraries::data_library::DataLibrary; use crate::static_data::moves::move_data::MoveData; use std::collections::HashMap; #[derive(Debug)] pub struct MoveLibrary { map: HashMap, list: Vec, } impl MoveLibrary { pub fn new(capacity: usize) -> MoveLibrary { MoveLibrary { map: HashMap::with_capacity(capacity), list: Vec::with_capacity(capacity), } } } impl DataLibrary<'_, MoveData> for MoveLibrary { 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) } }