diff options
author | Canop <cano.petrole@gmail.com> | 2020-01-30 22:32:06 +0100 |
---|---|---|
committer | Canop <cano.petrole@gmail.com> | 2020-01-30 22:32:06 +0100 |
commit | b10cc444d58cb617c820f4a98d7a6e3d2bd09b46 (patch) | |
tree | 16df4c47579006ae6589c649ab385c7d72fbe297 /src/browser_states.rs | |
parent | 29eeafe2c8b9388b74a904af2f20377731f5cb73 (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.rs | 32 |
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( |