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.
This release includes the following brand new crates:
The windows-collections crate defines the Windows collection types like
IIterable<T>,IVector<T>,IMap<K, V>, and so on (Introducing the dedicatedwindows-collectionscrate #3483). It also includes all of the stock implementations for creating such collections (Stock collection support forIIterable#2346, Stock collection support forIVectorView#2350, Stock collection support forIMapView#2353). This allows these collections to be used without requiring a dependency on the largerwindowscrate. This crate also provides an optimized implementation of the standardIteratortrait for the WindowsIIterator<T>interface (OptimizeIteratorforIIterator<T>#3476).The windows-future crate defines the Windows async types like
IAsyncAction,IAsyncOperation<T>, and so on (Introducing the dedicatedwindows-futurecrate #3490). It also includes all of the stock implementations for creating such async types (Add asyncreadysupport #3221, Add asyncspawnsupport #3235). This allows these async types to be used without requiring a dependency on the largerwindowscrate.The windows-link crate provides linker support for Windows (Introducing the
windows-linkcrate #3450). This is the evolution of the olderwindows-targetscrate but is substantially simpler and more versatile thanks to advances in the Rust compiler since thewindows-targetscrate was unveiled. Notably, it does not depend on or insert any import libs and can be used with custom libraries, not only those provided by the Windows operating system. All of the crates, with the exception ofwindows-sys, now depend on the newwindows-linkcrate instead of the olderwindows-targetscrate. This greatly simplifies compilation and also greatly reduces the size of dependencies as thewindows-linkcrate is tiny. Thewindows-bindgencrate defaults towindows-linkbut also adds the--linkoption to override this as needed. You may for example want to use--link windows_targetsif you need to stick with thewindows-targetscrate if you cannot change your MSRV to Rust 1.71 or later as that was the first version to stabilizeraw-dylibfor all Windows targets. This then lets you continue to usewindows-bindgenuntil you are ready to move to a newer version of Rust.The windows-numerics crate defines the Windows numeric types to support graphics-oriented math APIs and calculations (Introducing the dedicated
windows-numericscrate #3488). It also also includes all of the stock implementations for overloaded operators and other transformations. This allows these numeric types to be used without requiring a dependency on the largerwindowscrate.In addition to these new crates, this release includes major updates to the following existing crates:
The windows-bindgen crate provides a number of improvements including new diagnostics (Add optional warnings for
windows-bindgento improve diagnostics #3498), streamlined and more capable reference support (Simpler default reference support inwindows-bindgen#3497, Improvewindows-bindgenreference usability and default reference support #3492), hardened method overloading (Harden method overload support #3477), far fewertransmutecalls, as well as many other critical fixes and improvements.The windows-core crate is largely unchanged but required some breaking changes to support
windows-bindgentype system improvements.The windows-registry crate continues to improve with generalized support for access rights (Generalize support for access rights in
windows-registry#3482), open options (AddOpenOptionstowindows-registry#3461), and other minor improvements.The windows crate now delegates to the
windows-numerics,windows-future, andwindows-collectionscrates for those types, as well as a number of critical fixes and improvements to features andcfgguards (Fixcfggeneration #3431), and many other small improvements.In addition, this release also includes minor updates to the following existing crates:
The windows-result now includes the
BOOLtype (MakeBOOLa core type #3441) as a core type. This allows this ubiquitous type to be used without requiring a dependency on the largerwindowscrate.The windows-strings crate now depends on the new
windows-linkcrate instead of the olderwindows-targetscrate.The windows-version crate now depends on the new
windows-linkcrate instead of the olderwindows-targetscrate.The cppwinrt crate includes minor improvements to improve build reliability.