diff --git a/rust/hg-core/src/dirstate_tree/dirstate_map.rs b/rust/hg-core/src/dirstate_tree/dirstate_map.rs --- a/rust/hg-core/src/dirstate_tree/dirstate_map.rs +++ b/rust/hg-core/src/dirstate_tree/dirstate_map.rs @@ -1,4 +1,5 @@ use bytes_cast::BytesCast; +use micro_timer::timed; use std::path::PathBuf; use std::{collections::BTreeMap, convert::TryInto}; @@ -499,6 +500,7 @@ impl super::dispatch::DirstateMapMethods self.dirty_parents = true; } + #[timed] fn read<'a>( &mut self, file_contents: &'a [u8], diff --git a/rust/hg-core/src/dirstate_tree/status.rs b/rust/hg-core/src/dirstate_tree/status.rs --- a/rust/hg-core/src/dirstate_tree/status.rs +++ b/rust/hg-core/src/dirstate_tree/status.rs @@ -13,6 +13,7 @@ use crate::HgPathBuf; use crate::PatternFileWarning; use crate::StatusError; use crate::StatusOptions; +use micro_timer::timed; use rayon::prelude::*; use std::borrow::Cow; use std::io; @@ -29,6 +30,7 @@ use std::sync::Mutex; /// and its use of `itertools::merge_join_by`. When reaching a path that only /// exists in one of the two trees, depending on information requested by /// `options` we may need to traverse the remaining subtree. +#[timed] pub fn status<'tree>( dmap: &'tree mut DirstateMap, matcher: &(dyn Matcher + Sync),