Skip to content

Commit 37e1657

Browse files
authored
refactor: minor improvements (#5)
1 parent 1da1e3a commit 37e1657

File tree

6 files changed

+19
-26
lines changed

6 files changed

+19
-26
lines changed

src/commands/derive_db.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ fn derive_db_command(args: DeriveDbArgs) {
8787
.with_finish_message("Pages remapped"),
8888
);
8989

90-
let links = links::read_and_parse_links2(
90+
let links = links::read_and_parse_links(
9191
pagelinks_sql.as_str(),
9292
threads,
9393
&lookup,

src/commands/interactive.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,14 @@ If you want to exit press ctrl+d or ctrl+c\n"
4242
let links = data.links;
4343
let lookup = data.pages;
4444

45-
fn page_input_loop<'a>(prompt: &str, pages: &'a PageMap) -> Option<PageMapResult> {
45+
fn page_input_loop(prompt: &str, pages: &PageMap) -> Option<PageMapResult> {
4646
loop {
4747
let input = inquire::Text::new(prompt).prompt();
4848
if input.is_err() {
4949
return None;
5050
}
5151

52-
let input = input.unwrap().replace(" ", "_");
52+
let input = input.unwrap().replace(' ', "_");
5353
let page = pages.resolve_by_title(&input);
5454
if page.is_none() {
5555
println!("Page not found");

src/data/maps/link_map.rs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,17 @@ impl LinkMap {
2929
};
3030

3131
while let Some((from, to)) = links.pop_front() {
32-
if map.contains_key(&from) {
33-
map.get_mut(&from).unwrap().push(to);
34-
} else {
35-
map.insert(from, vec![to]);
32+
match map.entry(from) {
33+
std::collections::hash_map::Entry::Vacant(e) => {
34+
e.insert(vec![to]);
35+
}
36+
std::collections::hash_map::Entry::Occupied(mut e) => {
37+
e.get_mut().push(to);
38+
}
3639
}
3740

3841
links_counter += 1;
42+
3943
if links_counter % shrink_every == 0 {
4044
links.shrink_to_fit();
4145
}

src/data/parsers/common.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,13 @@ where
4242
let file_ptr = File::open(file).expect("Unable to open file");
4343
let reader = BufReader::new(file_ptr);
4444

45-
let mut i = 0;
46-
47-
for line in reader.lines().into_iter() {
45+
for (i, line) in reader.lines().enumerate() {
4846
let line = line.unwrap();
4947
tx.send(line).expect("Error sending line");
5048

5149
if i % 100 == 0 {
5250
debug!("Read {} lines", i);
5351
}
54-
i += 1;
5552
}
5653
});
5754

src/data/parsers/links.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ fn sync_parse_link_entry(
3131
out
3232
}
3333

34-
pub fn read_and_parse_links2(
34+
pub fn read_and_parse_links(
3535
file: &str,
3636
threads: i32,
3737
resolver: &PageMap,
@@ -40,9 +40,7 @@ pub fn read_and_parse_links2(
4040
// note: namespace is fixed in regex to 0 (main namespace)
4141
let re = Regex::new(r"\(([0-9]+),0,'([^']+)',0,[0-9]*\)").expect("Invalid regex");
4242

43-
let progress = progress
44-
.with_len(common::get_file_line_count(&file))
45-
.build();
43+
let progress = progress.with_len(common::get_file_line_count(file)).build();
4644

4745
let out = common::parse_file_async(
4846
file.to_string(),

src/indication.rs

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ impl ProgressReporter {
6060
finish_message: Option<&'static str>,
6161
steps: Option<(u8, u8)>,
6262
) -> Self {
63-
let progress = spinner(if let Some(_) = steps { true } else { false });
63+
let progress = spinner(steps.is_some());
6464
progress.set_message(message.clone());
6565

6666
if let Some((step, steps)) = steps {
@@ -177,7 +177,7 @@ impl ProgressBuilder {
177177
}
178178

179179
fn build_progress(self) -> ProgressReporter {
180-
let len = self.len.unwrap() as u64;
180+
let len = self.len.unwrap();
181181
let message = self.message.unwrap();
182182
let steps = self.steps.unwrap();
183183
let step = self.step.unwrap();
@@ -191,15 +191,9 @@ impl ProgressBuilder {
191191
let message = self.message.unwrap();
192192
let finish_message = self.finish_message;
193193

194-
let steps = if let Some(steps) = self.steps {
195-
if let Some(step) = self.step {
196-
Some((step, steps))
197-
} else {
198-
None
199-
}
200-
} else {
201-
None
202-
};
194+
let steps = self
195+
.steps
196+
.map(|steps| (steps, self.step.expect("only steps given, no step")));
203197

204198
ProgressReporter::new_spinner(message, finish_message, steps)
205199
}

0 commit comments

Comments
 (0)