mirror of https://github.com/zkat/cacache-rs.git
feat(link): add hard_link_hash (#82)
Fixes: https://github.com/zkat/cacache-rs/issues/80
This commit is contained in:
parent
3a71247364
commit
ab5f1c9185
12
src/get.rs
12
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<P, Q>(cache: P, sri: &Integrity, to: Q) -> Result<()>
|
||||
where
|
||||
P: AsRef<Path>,
|
||||
Q: AsRef<Path>,
|
||||
{
|
||||
read::hard_link_async(cache.as_ref(), sri, to.as_ref()).await
|
||||
}
|
||||
|
||||
/// Hard links a cache entry by key to a specified location.
|
||||
#[cfg(any(feature = "async-std", feature = "tokio"))]
|
||||
pub async fn hard_link<P, K, Q>(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()))
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue