Created by: richardwhiuk
CC: Rust technical committee - @frol @farcaller @bjgill
PR checklist
-
Read the contribution guidelines. -
Ran the shell script under ./bin/
to update Petstore sample so that CIs can verify the change. (For instance, only need to run./bin/{LANG}-petstore.sh
,./bin/openapi3/{LANG}-petstore.sh
if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in.\bin\windows\
. -
Filed the PR against the correct branch: master
,. Default:3.4.x
,4.0.x
master
. -
Copied the technical committee to review the pull request if your PR is targeting a particular programming language.
Description of the PR
This change significantly improves rust-server
's support for generating APIs with XML bodies.
- Restore XML namespace support which was lost in OpenAPI upgrade
- Remove non snake case rust warning for xml wrap_in methods
- Add XML rust-server tests
- Fix wrapping XML arrays when a property of another object
As part of this it makes a couple of core changes to Rust Server's code generator
- Run all tests, not just those for OpenAPI 2.0
- Force wrapping (aliasing) for rust-server - this is required because Rust doesn't allow implementing traits on types which the user doesn't own. Note, with wrapping disabled, the current generator creates code which doesn't compile.
The majority of this code was originally written by @bjgil. Additional fixes were contributed by myself, and others at @metaswitch.