windows-rs version 0.57 has various improvements for generated com bindings and the code size reduces.
We have been using win-bindgen with config=package, which is not publicly supported, and we are advised to switch to config=implement that is supported external to windows-rs. See https://github.com/microsoft/windows-rs/issues/3100 for details.
The generated code are reorganized due to the generation config mode, and the mod structures are remapped so that there is no unwanted nesting of mods, for example, FabricRuntime is no longer inside FabricCommon but they are siblings now. The generation of the code and remapping of the mods are still hacky, and we still need https://github.com/Azure/service-fabric-metadata/issues/1 to improve this.
Previously all mods are generated once, but now, each mod like FabricCommon and FabricRuntime is generated separately from the winmd file per pass. The generation speed maybe slowed but in practice it is not observable.
This upgrade will cause break in down stream because of the mod layout change. But it is easy to fix: just change the imports(use) with different path.
windows-rs version 0.57 has various improvements for generated com bindings and the code size reduces.
We have been using win-bindgen with config=package, which is not publicly supported, and we are advised to switch to config=implement that is supported external to windows-rs. See https://github.com/microsoft/windows-rs/issues/3100 for details.
The generated code are reorganized due to the generation config mode, and the mod structures are remapped so that there is no unwanted nesting of mods, for example, FabricRuntime is no longer inside FabricCommon but they are siblings now. The generation of the code and remapping of the mods are still hacky, and we still need https://github.com/Azure/service-fabric-metadata/issues/1 to improve this.
Previously all mods are generated once, but now, each mod like FabricCommon and FabricRuntime is generated separately from the winmd file per pass. The generation speed maybe slowed but in practice it is not observable.
This upgrade will cause break in down stream because of the mod layout change. But it is easy to fix: just change the imports(use) with different path.