Use download_and_extract in fetchers

to improve efficiency by avoiding disk io (except for `PkgFmt::Zip`
and `PkgFmt::Bin`) and run the compresser in parallel to the downloader.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
This commit is contained in:
Jiahao XU 2022-06-09 14:46:00 +10:00
parent b6bfd40c3a
commit c9b0d45a24
No known key found for this signature in database
GPG key ID: 591C0B03040416D6
4 changed files with 19 additions and 24 deletions

View file

@ -17,8 +17,8 @@ pub trait Fetcher: Send + Sync {
where
Self: Sized;
/// Fetch a package
async fn fetch(&self, dst: &Path) -> Result<(), BinstallError>;
/// Fetch a package and extract
async fn fetch_and_extract(&self, dst: &Path) -> Result<(), BinstallError>;
/// Check if a package is available for download
async fn check(&self) -> Result<bool, BinstallError>;