summaryrefslogtreecommitdiffstats
path: root/src/browser_states.rs
diff options
context:
space:
mode:
authorCanop <cano.petrole@gmail.com>2020-01-30 22:32:06 +0100
committerCanop <cano.petrole@gmail.com>2020-01-30 22:32:06 +0100
commitb10cc444d58cb617c820f4a98d7a6e3d2bd09b46 (patch)
tree16df4c47579006ae6589c649ab385c7d72fbe297 /src/browser_states.rs
parent29eeafe2c8b9388b74a904af2f20377731f5cb73 (diff)
add the time! macro
To help manage duration logging with reduced impact when not logging
Diffstat (limited to 'src/browser_states.rs')
-rw-r--r--src/browser_states.rs32
1 files changed, 18 insertions, 14 deletions
diff --git a/src/browser_states.rs b/src/browser_states.rs
index 6a21cfd..97be070 100644
--- a/src/browser_states.rs
+++ b/src/browser_states.rs
@@ -19,7 +19,11 @@ use {
},
minimad::Composite,
open,
- std::{fs::OpenOptions, io::Write, path::PathBuf, time::Instant},
+ std::{
+ fs::OpenOptions,
+ io::Write,
+ path::PathBuf,
+ },
};
/// An application state dedicated to displaying a tree.
@@ -390,33 +394,33 @@ impl AppState for BrowserState {
/// Stop as soon as the lifetime is expired.
fn do_pending_task(&mut self, screen: &mut Screen, tl: &TaskLifetime) {
if self.pending_pattern.is_some() {
- let start = Instant::now();
+ let pattern_str = self.pending_pattern.to_string();
let mut options = self.tree.options.clone();
options.pattern = self.pending_pattern.take();
let root = self.tree.root().clone();
let len = self.tree.lines.len() as u16;
- let mut filtered_tree = match TreeBuilder::from(root, options, len as usize) {
- Ok(builder) => builder.build(tl, self.total_search_required),
+ let builder = match TreeBuilder::from(root, options, len as usize) {
+ Ok(builder) => builder,
Err(e) => {
- warn!("Error while building tree: {:?}", e);
+ warn!("Error while preparing tree builder: {:?}", e);
return;
}
};
+ let mut filtered_tree = time!(
+ Info,
+ "tree filtering",
+ pattern_str,
+ builder.build(tl, self.total_search_required),
+ ); // can be None if a cancellation was required
self.total_search_required = false;
if let Some(ref mut ft) = filtered_tree {
- info!(
- "Tree search with pattern {} took {:?}",
- &ft.options.pattern,
- start.elapsed()
- );
- debug!("was it total search ? {}", ft.total_search);
ft.try_select_best_match();
ft.make_selection_visible(BrowserState::page_height(screen));
self.filtered_tree = filtered_tree;
- } // if none: task was cancelled from elsewhere
- return;
+ }
+ } else {
+ self.displayed_tree_mut().fetch_some_missing_dir_size(tl);
}
- self.displayed_tree_mut().fetch_some_missing_dir_size(tl);
}
fn display(