Repository: sharkdp/hyperfine (language: rust)

Issue:
Installation on windows is failing
```sh
$ cargo install hyperfine

error[E0432]: unresolved import `winapi::um::handleapi`
 --> C:\Users\runneradmin\.cargo\registry\src\github.com-1ecc6299db9ec823\hyperfine-1.15.0\src\timer\windows_timer.rs:9:9
  |
9 |         handleapi::CloseHandle,
  |         ^^^^^^^^^ could not find `handleapi` in `um`

For more information about this error, try `rustc --explain E0432`.
```

I got this error on [a workflow run](https://github.com/AntoniosBarotsis/Rss2Email/actions/runs/3790221724/jobs/6444764793) today even though everything was working perfectly fine a few days ago when it last ran.

After some digging around, the [winapi crate](https://docs.rs/winapi/latest/winapi/index.html) turned out to have [a flag](https://docs.rs/winapi/latest/src/winapi/um/mod.rs.html#119) for `handleapi`, enabling that in the `Cargo.toml` file fixes the issue.

I'm not experienced enough to really understand how this broke now considering how both this and the `winapi` crates have not been updated that recently but it was suggested to me in the Rust Discord that some lockfile somewhere was perhaps requiring an older version of one of these crates which did not need the explicit feature requirement.

This was tested locally by cloning the repo and installing it with `cargo install --path ./hyperfine` which only worked after the change I made in the pull request.
Installation on windows is failing
```sh
$ cargo install hyperfine

error[E0432]: unresolved import `winapi::um::handleapi`
 --> C:\Users\runneradmin\.cargo\registry\src\github.com-1ecc6299db9ec823\hyperfine-1.15.0\src\timer\windows_timer.rs:9:9
  |
9 |         handleapi::CloseHandle,
  |         ^^^^^^^^^ could not find `handleapi` in `um`

For more information about this error, try `rustc --explain E0432`.
```

I got this error on [a workflow run](https://github.com/AntoniosBarotsis/Rss2Email/actions/runs/3790221724/jobs/6444764793) today even though everything was working perfectly fine a few days ago when it last ran.

After some digging around, the [winapi crate](https://docs.rs/winapi/latest/winapi/index.html) turned out to have [a flag](https://docs.rs/winapi/latest/src/winapi/um/mod.rs.html#119) for `handleapi`, enabling that in the `Cargo.toml` file fixes the issue.

I'm not experienced enough to really understand how this broke now considering how both this and the `winapi` crates have not been updated that recently but it was suggested to me in the Rust Discord that some lockfile somewhere was perhaps requiring an older version of one of these crates which did not need the explicit feature requirement.

This was tested locally by cloning the repo and installing it with `cargo install --path ./hyperfine` which only worked after the change I made in the pull request.


Discussion / hints:

Fix patch:
diff --git a/Cargo.toml b/Cargo.toml
index 89fdebf81..791fcf7ff 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -34,7 +34,7 @@ anyhow = "1.0"
 libc = "0.2"
 
 [target.'cfg(windows)'.dependencies]
-winapi = { version = "0.3", features = ["processthreadsapi", "minwindef", "winnt", "jobapi2", "tlhelp32"] }
+winapi = { version = "0.3", features = ["processthreadsapi", "minwindef", "winnt", "jobapi2", "tlhelp32", "handleapi"] }
 
 [target.'cfg(all(windows, not(windows_process_extensions_main_thread_handle)))'.dependencies]
 once_cell = "1.16"


Test patch: