Created by: richardwhiuk
This is built on top of https://github.com/OpenAPITools/openapi-generator/pull/4441
Currently targeting merge to master. I'm not sure what the breaking position is here - this may well need to go into 5.0.x instead Breaking, so going into 5.0.x
Changes:
-
Hyper upgraded to Hyper 0.12.
-
NewService becomes MakeService
-
RequestonMakeContextis not parameterised - instead, ReqBody, and ResBody are parameterized, and must implementhyper::body::Payload.This means that our existing tuples (i.e.
(Body, Context)) don't work - instead we have a typeContextualPayload, which implements Payload, and derefs to an inner payload (the body), and contains a context.This is handled by the work done in https://github.com/Metaswitch/swagger-rs/pull/63 but has some fall out here as well.
-
tokio-proto/tokio-coreis no longer supported, andhyperinstead depends ontokio. -
Hyper depends on mime 0.3, but multipart depends on mime 0.2, so we now import both
-
-
Hyper TLS 0.2 and native-tls 0.1
We don't upgrade to Hyper TLS 0.3 in this MR, that'll happen in a future one.
-
Use Swagger Support library 3.x
-
Futures are now Send. This forces
ApiImplto be need toSendas a result, and all forces Clients to beSend+Sync. -
We move to modern(ish) conventions, and get rid of all bunch of extern crate shenanigans, and move it into
src/lib.rs. We try and sanitize thelib.rs/Cargo.tomlwhile here. Note, this doesn't move the crate to 2018, that'll happen in a future MR -
We move a multipart helper function to swagger-rs, which is the home for all large blocks of code, as it's easier to maintain.
Rust Technical Committee
@frol, @farcaller, @bjgill
@dbcfd You may find it useful to build on top of this.
PR checklist
-
Read the contribution guidelines. -
If contributing template-only or documentation-only changes which will change sample output, build the project before. -
Run the shell script(s) under ./bin/(or Windows batch scripts under.\bin\windows) to update Petstore samples related to your fix. This is important, as CI jobs will verify all generator outputs of your HEAD commit, and these must match the expectations made by your contribution. You only need to run./bin/{LANG}-petstore.sh,./bin/openapi3/{LANG}-petstore.shif updating the code or mustache templates for a language ({LANG}) (e.g. php, ruby, python, etc). -
File the PR against the correct branch: master,4.3.x,5.0.x. Default:master. -
Copy the technical committee to review the pull request if your PR is targeting a particular programming language.