Remove allocation in Git SHA truncation (#10801)
This commit is contained in:
@@ -170,7 +170,7 @@ impl<'a> BuiltWheelIndex<'a> {
|
||||
|
||||
let cache_shard = self.cache.shard(
|
||||
CacheBucket::SourceDistributions,
|
||||
WheelCache::Git(&source_dist.url, &git_sha.to_short_string()).root(),
|
||||
WheelCache::Git(&source_dist.url, git_sha.as_short_str()).root(),
|
||||
);
|
||||
|
||||
// If there are build settings, we need to scope to a cache shard.
|
||||
|
||||
@@ -1426,7 +1426,7 @@ impl<'a, T: BuildContext> SourceDistributionBuilder<'a, T> {
|
||||
let git_sha = fetch.git().precise().expect("Exact commit after checkout");
|
||||
let cache_shard = self.build_context.cache().shard(
|
||||
CacheBucket::SourceDistributions,
|
||||
WheelCache::Git(resource.url, &git_sha.to_short_string()).root(),
|
||||
WheelCache::Git(resource.url, git_sha.as_short_str()).root(),
|
||||
);
|
||||
let metadata_entry = cache_shard.entry(METADATA);
|
||||
|
||||
@@ -1564,7 +1564,7 @@ impl<'a, T: BuildContext> SourceDistributionBuilder<'a, T> {
|
||||
let git_sha = fetch.git().precise().expect("Exact commit after checkout");
|
||||
let cache_shard = self.build_context.cache().shard(
|
||||
CacheBucket::SourceDistributions,
|
||||
WheelCache::Git(resource.url, &git_sha.to_short_string()).root(),
|
||||
WheelCache::Git(resource.url, git_sha.as_short_str()).root(),
|
||||
);
|
||||
let metadata_entry = cache_shard.entry(METADATA);
|
||||
|
||||
|
||||
@@ -8,9 +8,14 @@ use thiserror::Error;
|
||||
pub struct GitSha(GitOid);
|
||||
|
||||
impl GitSha {
|
||||
/// Convert the SHA to a truncated representation, i.e., the first 16 characters of the SHA.
|
||||
pub fn to_short_string(&self) -> String {
|
||||
self.0.to_string()[0..16].to_string()
|
||||
/// Return the Git SHA as a string.
|
||||
pub fn as_str(&self) -> &str {
|
||||
self.0.as_str()
|
||||
}
|
||||
|
||||
/// Return a truncated representation, i.e., the first 16 characters of the SHA.
|
||||
pub fn as_short_str(&self) -> &str {
|
||||
&self.0.as_str()[..16]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user