Add Fetcher::target to trait Fetcher

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
This commit is contained in:
Jiahao XU 2022-06-07 16:35:47 +10:00
parent 603955b848
commit 3f2e03893a
No known key found for this signature in database
GPG key ID: 591C0B03040416D6
3 changed files with 14 additions and 1 deletions

View file

@ -30,6 +30,9 @@ pub trait Fetcher {
/// Should return true if the remote is from a third-party source
fn is_third_party(&self) -> bool;
/// Return the target for this fetcher
fn target(&self) -> &str;
}
/// Data required to fetch a package

View file

@ -66,6 +66,10 @@ impl super::Fetcher for GhCrateMeta {
fn is_third_party(&self) -> bool {
false
}
fn target(&self) -> &str {
&self.data.target
}
}
/// Template for constructing download paths

View file

@ -13,6 +13,7 @@ const USER_AGENT: &str = concat!(env!("CARGO_PKG_NAME"), "/", env!("CARGO_PKG_VE
pub struct QuickInstall {
package: String,
target: String,
}
#[async_trait::async_trait]
@ -20,9 +21,10 @@ impl super::Fetcher for QuickInstall {
async fn new(data: &Data) -> Box<Self> {
let crate_name = &data.name;
let version = &data.version;
let target = &data.target;
let target = data.target.clone();
Box::new(Self {
package: format!("{crate_name}-{version}-{target}"),
target,
})
}
@ -50,6 +52,10 @@ impl super::Fetcher for QuickInstall {
fn is_third_party(&self) -> bool {
true
}
fn target(&self) -> &str {
&self.target
}
}
impl QuickInstall {