Making progress.

This commit is contained in:
2020-02-12 22:31:06 +01:00
parent dc545e4063
commit a54bb70138
9 changed files with 243 additions and 12 deletions

36
src/storage.rs Normal file
View File

@@ -0,0 +1,36 @@
use std::collections::HashMap;
use crate::item::Item;
pub struct Storage {
keys: HashMap<String, usize>,
items: Vec<Item>,
}
impl Storage {
pub fn new() -> Self {
Storage {
keys: HashMap::new(),
items: Vec::new(),
}
}
pub fn contains_key(&self, key: &str) -> bool {
self.keys.contains_key(key)
}
pub fn insert(&mut self, key: String, item: Item) {
let index = self.items.len();
self.items.push(item);
self.keys.insert(key, index);
}
pub fn get_id(&self, key: &str) -> usize {
self.keys[key]
}
pub fn get_item(&mut self, id: usize) -> &mut Item {
&mut self.items[id]
}
}