Skip to content

Commit

Permalink
Use io::Error::downcast in 1.79 (#1754)
Browse files Browse the repository at this point in the history
* Bump msrv of binstalk-downloader, binstalk and cargo-binstall to 1.79

* Update From<io::Error> for DownloadError

to use io::Error::downcast

* Update From<io::Error> for BinstallError

* fix dmt
  • Loading branch information
NobodyXu authored Jun 14, 2024
1 parent dfa230f commit 34cca9f
Show file tree
Hide file tree
Showing 5 changed files with 7 additions and 31 deletions.
2 changes: 1 addition & 1 deletion crates/bin/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description = "Binary installation for rust projects"
repository = "https://github.com/cargo-bins/cargo-binstall"
documentation = "https://docs.rs/cargo-binstall"
version = "1.6.9"
rust-version = "1.70.0"
rust-version = "1.79.0"
authors = ["ryan <ryan@kurte.nz>"]
edition = "2021"
license = "GPL-3.0-only"
Expand Down
2 changes: 1 addition & 1 deletion crates/binstalk-downloader/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description = "The binstall toolkit for downloading and extracting file"
repository = "https://github.com/cargo-bins/cargo-binstall"
documentation = "https://docs.rs/binstalk-downloader"
version = "0.11.2"
rust-version = "1.70.0"
rust-version = "1.79.0"
authors = ["ryan <ryan@kurte.nz>"]
edition = "2021"
license = "Apache-2.0 OR MIT"
Expand Down
16 changes: 2 additions & 14 deletions crates/binstalk-downloader/src/download.rs
Original file line number Diff line number Diff line change
Expand Up @@ -44,20 +44,8 @@ pub enum DownloadError {

impl From<io::Error> for DownloadError {
fn from(err: io::Error) -> Self {
if err.get_ref().is_some() {
let kind = err.kind();

let inner = err
.into_inner()
.expect("err.get_ref() returns Some, so err.into_inner() should also return Some");

inner
.downcast()
.map(|b| *b)
.unwrap_or_else(|err| DownloadError::Io(io::Error::new(kind, err)))
} else {
DownloadError::Io(err)
}
err.downcast::<DownloadError>()
.unwrap_or_else(DownloadError::Io)
}
}

Expand Down
2 changes: 1 addition & 1 deletion crates/binstalk/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description = "The binstall toolkit (library interface)"
repository = "https://github.com/cargo-bins/cargo-binstall"
documentation = "https://docs.rs/binstalk"
version = "0.24.0"
rust-version = "1.65.0"
rust-version = "1.79.0"
authors = ["ryan <ryan@kurte.nz>"]
edition = "2021"
license = "GPL-3.0-only"
Expand Down
16 changes: 2 additions & 14 deletions crates/binstalk/src/errors.rs
Original file line number Diff line number Diff line change
Expand Up @@ -530,20 +530,8 @@ impl Termination for BinstallError {

impl From<io::Error> for BinstallError {
fn from(err: io::Error) -> Self {
if err.get_ref().is_some() {
let kind = err.kind();

let inner = err
.into_inner()
.expect("err.get_ref() returns Some, so err.into_inner() should also return Some");

inner
.downcast()
.map(|b| *b)
.unwrap_or_else(|err| BinstallError::Io(io::Error::new(kind, err)))
} else {
BinstallError::Io(err)
}
err.downcast::<BinstallError>()
.unwrap_or_else(BinstallError::Io)
}
}

Expand Down

0 comments on commit 34cca9f

Please sign in to comment.