view rust/hg-core/src/operations/mod.rs @ 52280:f4aede0f01af

rust-manifest: use `memchr` crate for all byte-finding needs While writing a very dumb manifest diffing algorithm for a proof-of-concept I saw that `Manifest::find_by_path` was much slower than I was expecting. It turns out that the Rust stdlib uses slow (all is relative) code when searching for byte positions for reasons ranging from portability, SIMD API stability, nobody doing the work, etc. `memch` is much faster for these purposes, so let's use it. I was measuring ~670ms of profile time in `find_by_path`, after this patch it went down to ~230ms.
author Rapha?l Gom?s <rgomes@octobus.net>
date Tue, 12 Nov 2024 23:20:04 +0100
parents 7c105b953ca4
children bde718849153
line wrap: on
line source

//! A distinction is made between operations and commands.
//! An operation is what can be done whereas a command is what is exposed by
//! the cli. A single command can use several operations to achieve its goal.

mod cat;
mod debugdata;
mod list_tracked_files;
mod status_rev_rev;
pub use cat::{cat, CatOutput};
pub use debugdata::debug_data;
pub use list_tracked_files::{
    list_rev_tracked_files, list_revset_tracked_files, ExpandedManifestEntry,
    FilesForRev,
};
pub use status_rev_rev::{status_rev_rev_no_copies, DiffStatus, StatusRevRev};