This is a profile crate extracted from Rust Analyzer repo for my use Source https:/rust-lang/rust-analyzer/tree/master/crates/profile see https:/rust-lang/rust-analyzer/blob/b988c6f84e06bdc5562c70f28586b9eeaae3a39c/crates/ide_db/src/apply_change.rs#L104-L238 for use