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 /// Should return true if the remote is from a third-party source
fn is_third_party(&self) -> bool; fn is_third_party(&self) -> bool;
/// Return the target for this fetcher
fn target(&self) -> &str;
} }
/// Data required to fetch a package /// Data required to fetch a package

View file

@ -66,6 +66,10 @@ impl super::Fetcher for GhCrateMeta {
fn is_third_party(&self) -> bool { fn is_third_party(&self) -> bool {
false false
} }
fn target(&self) -> &str {
&self.data.target
}
} }
/// Template for constructing download paths /// 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 { pub struct QuickInstall {
package: String, package: String,
target: String,
} }
#[async_trait::async_trait] #[async_trait::async_trait]
@ -20,9 +21,10 @@ impl super::Fetcher for QuickInstall {
async fn new(data: &Data) -> Box<Self> { async fn new(data: &Data) -> Box<Self> {
let crate_name = &data.name; let crate_name = &data.name;
let version = &data.version; let version = &data.version;
let target = &data.target; let target = data.target.clone();
Box::new(Self { Box::new(Self {
package: format!("{crate_name}-{version}-{target}"), package: format!("{crate_name}-{version}-{target}"),
target,
}) })
} }
@ -50,6 +52,10 @@ impl super::Fetcher for QuickInstall {
fn is_third_party(&self) -> bool { fn is_third_party(&self) -> bool {
true true
} }
fn target(&self) -> &str {
&self.target
}
} }
impl QuickInstall { impl QuickInstall {