summaryrefslogtreecommitdiff
path: root/cli/util/checksum.rs
diff options
context:
space:
mode:
authorMatt Mastracci <matthew@mastracci.com>2024-03-07 10:00:43 -0700
committerGitHub <noreply@github.com>2024-03-07 10:00:43 -0700
commit4791d16a8efc42fb40ffab79bcdae4f0e106cd89 (patch)
tree3d91c75b0d822ba68797da8a33091597f99f7af6 /cli/util/checksum.rs
parent594d8397ad46a90389bec9a76afde1bc7f1fa35b (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/checksum.rs')
-rw-r--r--cli/util/checksum.rs9
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)]