pull/2624/head
Krzysztof Andrelczyk 4 days ago
parent f7c10ea311
commit 2fdda080db
No known key found for this signature in database
GPG Key ID: 1381C9E2A2973DBF

@ -102,15 +102,26 @@ pub struct RemoteRelease {
impl RemoteRelease { impl RemoteRelease {
/// The release's download URL for the given target. /// The release's download URL for the given target.
pub fn download_url(&self, fallback_target: &str, installer: Option<Installer>) -> Result<&Url> { pub fn download_url(
let target = installer.map(|installer| format!("{fallback_target}-{}", installer.suffix())).unwrap_or("".to_string()); &self,
fallback_target: &str,
installer: Option<Installer>,
) -> Result<&Url> {
let target = installer
.map(|installer| format!("{fallback_target}-{}", installer.suffix()))
.unwrap_or("".to_string());
match self.data { match self.data {
RemoteReleaseInner::Dynamic(ref platform) => Ok(&platform.url), RemoteReleaseInner::Dynamic(ref platform) => Ok(&platform.url),
RemoteReleaseInner::Static { ref platforms } => platforms.get(&target).map_or_else( RemoteReleaseInner::Static { ref platforms } => platforms.get(&target).map_or_else(
|| platforms.get(fallback_target).map_or( || {
Err(Error::TargetsNotFound(target.to_string(), fallback_target.to_string())), platforms.get(fallback_target).map_or(
Err(Error::TargetsNotFound(
target.to_string(),
fallback_target.to_string(),
)),
|p| Ok(&p.url), |p| Ok(&p.url),
), )
},
|p| Ok(&p.url), |p| Ok(&p.url),
), ),
} }

Loading…
Cancel
Save