Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce new bindgen crate #1379

Merged
merged 64 commits into from Dec 10, 2021
Merged

Introduce new bindgen crate #1379

merged 64 commits into from Dec 10, 2021

Conversation

kennykerr
Copy link
Collaborator

  • The new windows-bindgen crate replaces the existing gen crate. The latter is still used by the build and generate macros but those will be removed soon. Projects should simply use the bindgen crate directly.
  • The bindgen crate is now used to generate the windows and windows-sys crates as well as the internal bindings.
  • Code gen across windows and windows-sys is now much more closely aligned, making code maintenance much more manageable and for dependents switching between the two dependencies a lot easier.
  • Notably, the Win32 portion of the bindings in the windows crate now behave a lot more like those in the windows-sys crate with fewer unnecessary type system adornments.
  • The bindgen crate does not rely on the derive macro, producing code that compiles faster.
  • The Debug trait is no longer implemented as it requires a lot of code gen and negatively impacts compile time.

The next step is to introduce a trait-based replacement for the implement macro and then the gen crate along with the build and generate macros will be removed.

@kennykerr kennykerr merged commit 0164002 into master Dec 10, 2021
@kennykerr kennykerr deleted the gen2 branch December 10, 2021 00:03
@kennykerr kennykerr mentioned this pull request Dec 17, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant