refactor: SavedIndex type

This commit is contained in:
Alex Wellnitz 2024-12-16 19:37:44 +01:00
parent 3d1e7527d2
commit 93bfd155fd
4 changed files with 15 additions and 13 deletions

View File

@ -11,6 +11,5 @@ pub fn load_config(config_path: &str) -> Config {
eprintln!("Error loading config file: {}", e); eprintln!("Error loading config file: {}", e);
} }
} }
settings
return settings;
} }

View File

@ -1,15 +1,10 @@
use bincode::{deserialize_from, serialize_into}; use bincode::{deserialize_from, serialize_into};
use serde::{Deserialize, Serialize};
use std::collections::{BTreeMap, HashMap}; use std::collections::{BTreeMap, HashMap};
use std::f64; use std::f64;
use std::fs::File; use std::fs::File;
use std::io::{BufReader, BufWriter}; use std::io::{BufReader, BufWriter};
#[derive(Serialize, Deserialize)] use crate::types::index;
struct SavedIndex {
index_btree_map: BTreeMap<String, HashMap<String, i32>>,
documents_btree_map: BTreeMap<String, String>,
}
fn update_url_scores(old: &mut HashMap<String, f64>, new: &HashMap<String, f64>) { fn update_url_scores(old: &mut HashMap<String, f64>, new: &HashMap<String, f64>) {
for (url, score) in new { for (url, score) in new {
@ -203,8 +198,6 @@ impl SearchEngine {
.entry(url.to_string()) .entry(url.to_string())
.or_insert(0) += 1; .or_insert(0) += 1;
} }
// TODO: After updating the index
self.write_index_to_disk(); self.write_index_to_disk();
} }
@ -241,7 +234,7 @@ impl SearchEngine {
let btree_index: BTreeMap<_, _> = index_hash_map.into_iter().collect(); let btree_index: BTreeMap<_, _> = index_hash_map.into_iter().collect();
let btree_documents: BTreeMap<_, _> = documents_hash_map.into_iter().collect(); let btree_documents: BTreeMap<_, _> = documents_hash_map.into_iter().collect();
let data = SavedIndex { let data = index::SavedIndex {
index_btree_map: btree_index, index_btree_map: btree_index,
documents_btree_map: btree_documents, documents_btree_map: btree_documents,
}; };
@ -258,9 +251,9 @@ impl SearchEngine {
} }
} }
fn get_index_from_disk() -> SavedIndex { fn get_index_from_disk() -> index::SavedIndex {
let file = File::open("/tmp/search.db"); let file = File::open("/tmp/search.db");
let mut data = SavedIndex { let mut data = index::SavedIndex {
documents_btree_map: BTreeMap::new(), documents_btree_map: BTreeMap::new(),
index_btree_map: BTreeMap::new(), index_btree_map: BTreeMap::new(),
}; };

9
src/types/index.rs Normal file
View File

@ -0,0 +1,9 @@
use std::collections::{BTreeMap, HashMap};
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize)]
pub struct SavedIndex {
pub index_btree_map: BTreeMap<String, HashMap<String, i32>>,
pub documents_btree_map: BTreeMap<String, String>,
}

View File

@ -1,2 +1,3 @@
pub mod app_state; pub mod app_state;
pub mod config; pub mod config;
pub mod index;