Replace windows dependency with generated bindings
#14
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Since
windows-bindgen 0.64there's a new--specific-depsoptionthat allows us to drop thethat are not expected to release breaking updates very often while still taking advantage of the high-level non-windows-coredependency (which releases at the same cadence aswindows, so replacing with that isn't a net-win except forwindowscrate download size) and purely utilize a few small non-COM utility cratessyswindows-rs bindings.Caution
There are currently a few violations here such as a
windows_core::Errorreference that should have beenwindows_result::Error, and a reference/requirement onwindows_core::Paramandimpl windows_core::Free for HANDLEthat don't actually allow us to drop thewindows-coredependency just yet, CC @kennykerr. I'll report these upstream and use this draft PR as a live example out in the wild.Note that this
windows-bindgenversion bumps the minimum version (and resulting MSRV?) bounds on all these crates significantly.