diff options
author | Matt Mastracci <matthew@mastracci.com> | 2024-03-07 10:00:43 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-07 10:00:43 -0700 |
commit | 4791d16a8efc42fb40ffab79bcdae4f0e106cd89 (patch) | |
tree | 3d91c75b0d822ba68797da8a33091597f99f7af6 /cli/util | |
parent | 594d8397ad46a90389bec9a76afde1bc7f1fa35b (diff) |
perf(cli): use faster_hex (#22761)
`cli::util::checksum` was showing up on flame graphs because it was
concatenating allocated strings. We can use `faster-hex` to improve it.
Diffstat (limited to 'cli/util')
-rw-r--r-- | cli/util/checksum.rs | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/cli/util/checksum.rs b/cli/util/checksum.rs index d9480eb6e..c9c55ec2b 100644 --- a/cli/util/checksum.rs +++ b/cli/util/checksum.rs @@ -3,18 +3,13 @@ use ring::digest::Context; use ring::digest::SHA256; +/// Generate a SHA256 checksum of a slice of byte-slice-like things. pub fn gen(v: &[impl AsRef<[u8]>]) -> String { let mut ctx = Context::new(&SHA256); for src in v { ctx.update(src.as_ref()); } - let digest = ctx.finish(); - let out: Vec<String> = digest - .as_ref() - .iter() - .map(|byte| format!("{byte:02x}")) - .collect(); - out.join("") + faster_hex::hex_string(ctx.finish().as_ref()) } #[cfg(test)] |