Skip to content

Commit 49b0df8

Browse files
committed
wip: improve database
1 parent 37e1657 commit 49b0df8

File tree

3 files changed

+20
-21
lines changed

3 files changed

+20
-21
lines changed

src/commands/derive_db.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use log::info;
33

44
use crate::{
55
data::{
6-
database,
6+
database::Database,
77
maps::{link_map::LinkMap, page_map::PageMap},
88
parsers::{links, pages, redirects},
99
},
@@ -112,7 +112,8 @@ fn derive_db_command(args: DeriveDbArgs) {
112112
.with_finish_message("Serialized and written to file")
113113
.build();
114114
spinner.enable_background();
115-
database::serialize(output.as_str(), &links, &lookup);
115+
Database::new(links, lookup).to_file(output.as_str());
116+
116117
spinner.finish();
117118
}
118119
}

src/commands/interactive.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use clap::Args;
33
use crate::{
44
data::{
55
algorithm::bfs,
6-
database,
6+
database::Database,
77
maps::page_map::{PageMap, PageMapResult},
88
},
99
indication::ProgressBuilder,
@@ -31,7 +31,7 @@ fn interactive_cmd(args: &InteractiveArgs) {
3131
.with_message("📝 Deserializing DB")
3232
.build();
3333
spinner.enable_background();
34-
let data = database::deserialize(&db);
34+
let data = Database::from_file(&db);
3535
spinner.finish();
3636

3737
println!(

src/data/database.rs

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,28 @@ use serde::{Deserialize, Serialize};
22

33
use crate::data::maps::{link_map::LinkMap, page_map::PageMap};
44

5-
#[derive(Serialize)]
6-
struct SerializerDatabase<'a> {
7-
pub links: &'a LinkMap,
8-
pub pages: &'a PageMap,
9-
}
10-
11-
#[derive(Deserialize)]
5+
#[derive(Serialize, Deserialize)]
126
pub struct Database {
137
pub links: LinkMap,
148
pub pages: PageMap,
159
}
1610

17-
pub fn serialize(outfile: &str, links: &LinkMap, pages: &PageMap) {
18-
let db = SerializerDatabase { links, pages };
11+
impl Database {
12+
pub fn new(links: LinkMap, pages: PageMap) -> Self {
13+
Self { links, pages }
14+
}
1915

20-
let file = std::fs::File::create(outfile).unwrap();
21-
let writer = std::io::BufWriter::new(file);
16+
pub fn to_file(&self, outfile: &str) {
17+
let file = std::fs::File::create(outfile).unwrap();
18+
let writer = std::io::BufWriter::new(file);
2219

23-
ciborium::into_writer(&db, writer).expect("Error writing db");
24-
}
20+
ciborium::into_writer(self, writer).expect("Error writing db");
21+
}
2522

26-
pub fn deserialize(infile: &str) -> Database {
27-
let file = std::fs::File::open(infile).unwrap();
28-
let reader = std::io::BufReader::new(file);
23+
pub fn from_file(infile: &str) -> Database {
24+
let file = std::fs::File::open(infile).unwrap();
25+
let reader = std::io::BufReader::new(file);
2926

30-
ciborium::from_reader(reader).expect("Error reading db")
27+
ciborium::from_reader(reader).expect("Error reading db")
28+
}
3129
}

0 commit comments

Comments
 (0)