From ab5f1c91857188f01a93fb60c47b25ee711d545d Mon Sep 17 00:00:00 2001 From: Song Gao <158983297@qq.com> Date: Sat, 15 Jun 2024 00:04:23 +0800 Subject: [PATCH] feat(link): add hard_link_hash (#82) Fixes: https://github.com/zkat/cacache-rs/issues/80 --- src/get.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/get.rs b/src/get.rs index 374a154..b4f8101 100644 --- a/src/get.rs +++ b/src/get.rs @@ -402,6 +402,16 @@ where read::reflink_async(cache.as_ref(), sri, to.as_ref()).await } +/// Hard links a cache entry by hash to a specified location. +#[cfg(any(feature = "async-std", feature = "tokio"))] +pub async fn hard_link_hash
(cache: P, sri: &Integrity, to: Q) -> Result<()>
+where
+ P: AsRef (cache: P, key: K, to: Q) -> Result<()>
@@ -412,7 +422,7 @@ where
{
async fn inner(cache: &Path, key: &str, to: &Path) -> Result<()> {
if let Some(entry) = index::find(cache, key)? {
- read::hard_link_async(cache, &entry.integrity, to).await
+ hard_link_hash(cache, &entry.integrity, to).await
} else {
Err(Error::EntryNotFound(cache.to_path_buf(), key.into()))
}