From f36a319316298c76ec707310c009fcc27b4a7e1f Mon Sep 17 00:00:00 2001 From: Richard Whitehouse Date: Sun, 26 Apr 2020 12:00:46 +0100 Subject: [PATCH] [Rust Server] Rust 2018 Edition (#5942) * [Rust Server] Rust 2018 Edition * [Rust Server] Fix unused warning * Update samples --- .../main/resources/rust-server/Cargo.mustache | 7 +- .../rust-server/client-callbacks.mustache | 4 +- .../rust-server/client-imports.mustache | 7 +- .../resources/rust-server/client-mod.mustache | 6 +- .../rust-server/client-operation.mustache | 2 +- .../resources/rust-server/context.mustache | 2 +- .../rust-server/example-client-main.mustache | 31 +--- .../example-server-common.mustache | 3 +- .../rust-server/example-server-main.mustache | 27 --- .../main/resources/rust-server/lib.mustache | 81 --------- .../resources/rust-server/models.mustache | 53 ++++-- .../rust-server/server-callbacks.mustache | 6 +- .../rust-server/server-imports.mustache | 8 +- .../resources/rust-server/server-mod.mustache | 2 +- .../rust-server/server-paths.mustache | 4 +- .../output/multipart-v3/Cargo.toml | 6 +- .../multipart-v3/examples/client/main.rs | 18 +- .../multipart-v3/examples/server/main.rs | 24 --- .../multipart-v3/examples/server/server.rs | 3 +- .../output/multipart-v3/src/client/mod.rs | 23 ++- .../output/multipart-v3/src/context.rs | 2 +- .../output/multipart-v3/src/lib.rs | 58 ------ .../output/multipart-v3/src/models.rs | 20 +- .../output/multipart-v3/src/server/mod.rs | 18 +- .../output/no-example-v3/Cargo.toml | 6 +- .../no-example-v3/examples/client/main.rs | 18 +- .../no-example-v3/examples/server/main.rs | 24 --- .../no-example-v3/examples/server/server.rs | 3 +- .../output/no-example-v3/src/client/mod.rs | 12 +- .../output/no-example-v3/src/context.rs | 2 +- .../output/no-example-v3/src/lib.rs | 49 ----- .../output/no-example-v3/src/models.rs | 8 +- .../output/no-example-v3/src/server/mod.rs | 13 +- .../rust-server/output/openapi-v3/Cargo.toml | 6 +- .../output/openapi-v3/examples/client/main.rs | 29 +-- .../openapi-v3/examples/client/server.rs | 3 +- .../output/openapi-v3/examples/server/main.rs | 25 --- .../openapi-v3/examples/server/server.rs | 3 +- .../output/openapi-v3/src/client/callbacks.rs | 19 +- .../output/openapi-v3/src/client/mod.rs | 12 +- .../output/openapi-v3/src/context.rs | 2 +- .../rust-server/output/openapi-v3/src/lib.rs | 49 ----- .../output/openapi-v3/src/models.rs | 122 +++++++------ .../output/openapi-v3/src/server/callbacks.rs | 14 +- .../output/openapi-v3/src/server/mod.rs | 53 +++--- .../rust-server/output/ops-v3/Cargo.toml | 6 +- .../output/ops-v3/examples/client/main.rs | 18 +- .../output/ops-v3/examples/server/main.rs | 24 --- .../output/ops-v3/examples/server/server.rs | 3 +- .../output/ops-v3/src/client/mod.rs | 12 +- .../rust-server/output/ops-v3/src/context.rs | 2 +- .../rust-server/output/ops-v3/src/lib.rs | 49 ----- .../rust-server/output/ops-v3/src/models.rs | 4 +- .../output/ops-v3/src/server/mod.rs | 85 ++++----- .../Cargo.toml | 6 +- .../examples/client/main.rs | 18 +- .../examples/server/main.rs | 25 --- .../examples/server/server.rs | 3 +- .../src/client/mod.rs | 12 +- .../src/context.rs | 2 +- .../src/lib.rs | 53 ------ .../src/models.rs | 172 +++++++++--------- .../src/server/mod.rs | 65 +++---- .../output/rust-server-test/Cargo.toml | 6 +- .../rust-server-test/examples/client/main.rs | 18 +- .../rust-server-test/examples/server/main.rs | 24 --- .../examples/server/server.rs | 3 +- .../output/rust-server-test/src/client/mod.rs | 12 +- .../output/rust-server-test/src/context.rs | 2 +- .../output/rust-server-test/src/lib.rs | 49 ----- .../output/rust-server-test/src/models.rs | 36 ++-- .../output/rust-server-test/src/server/mod.rs | 27 +-- 72 files changed, 512 insertions(+), 1111 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/rust-server/Cargo.mustache b/modules/openapi-generator/src/main/resources/rust-server/Cargo.mustache index a256d0b598d..64fb641c762 100644 --- a/modules/openapi-generator/src/main/resources/rust-server/Cargo.mustache +++ b/modules/openapi-generator/src/main/resources/rust-server/Cargo.mustache @@ -6,6 +6,7 @@ authors = [{{#infoEmail}}"{{{infoEmail}}}"{{/infoEmail}}] description = "{{{appDescription}}}" {{/appDescription}} license = "Unlicense" +edition = "2018" [features] default = ["client", "server"] @@ -25,6 +26,7 @@ client = [ {{#hasCallbacks}} "serde_ignored", "regex", "percent-encoding", "lazy_static", {{/hasCallbacks}} +{{! Anything added to the list below, should probably be added to the callbacks list below }} "hyper", "hyper-openssl", "native-tls", "openssl", "url" ] server = [ @@ -57,11 +59,10 @@ openssl = {version = "0.10", optional = true } chrono = { version = "0.4", features = ["serde"] } futures = "0.1" swagger = "4.0" -log = "0.3.0" +log = "0.4.0" mime = "0.3" -serde = "1.0" -serde_derive = "1.0" +serde = { version = "1.0", features = ["derive"]} serde_json = "1.0" # Crates included if required by the API definition diff --git a/modules/openapi-generator/src/main/resources/rust-server/client-callbacks.mustache b/modules/openapi-generator/src/main/resources/rust-server/client-callbacks.mustache index aa9a8cc7051..33d3bd68c14 100644 --- a/modules/openapi-generator/src/main/resources/rust-server/client-callbacks.mustache +++ b/modules/openapi-generator/src/main/resources/rust-server/client-callbacks.mustache @@ -1,5 +1,5 @@ {{>server-imports}} -use CallbackApi as Api; +use crate::CallbackApi as Api; {{#apiInfo}} {{#apis}} {{#operations}} @@ -7,7 +7,7 @@ use CallbackApi as Api; {{#callbacks}} {{#urls}} {{#requests}} -use {{{operationId}}}Response; +use crate::{{{operationId}}}Response; {{/requests}} {{/urls}} {{/callbacks}} diff --git a/modules/openapi-generator/src/main/resources/rust-server/client-imports.mustache b/modules/openapi-generator/src/main/resources/rust-server/client-imports.mustache index 87baaaaffb6..d9878a10465 100644 --- a/modules/openapi-generator/src/main/resources/rust-server/client-imports.mustache +++ b/modules/openapi-generator/src/main/resources/rust-server/client-imports.mustache @@ -27,7 +27,6 @@ use multipart::client::lazy::Multipart; {{/apiUsesMultipartFormData}} {{#apiUsesMultipartRelated}} use hyper_0_10::header::{Headers, ContentType}; -header! { (ContentId, "Content-ID") => [String] } use mime_multipart::{Node, Part, generate_boundary, write_multipart}; {{/apiUsesMultipartRelated}} {{#apiUsesUuid}} @@ -37,10 +36,10 @@ use uuid; use serde_xml_rs; {{/usesXml}} -use models; -use header; +use crate::models; +use crate::header; -define_encode_set! { +url::define_encode_set! { /// This encode set is used for object IDs /// /// Aside from the special characters defined in the `PATH_SEGMENT_ENCODE_SET`, diff --git a/modules/openapi-generator/src/main/resources/rust-server/client-mod.mustache b/modules/openapi-generator/src/main/resources/rust-server/client-mod.mustache index 7b6e286489b..fb9028992fd 100644 --- a/modules/openapi-generator/src/main/resources/rust-server/client-mod.mustache +++ b/modules/openapi-generator/src/main/resources/rust-server/client-mod.mustache @@ -1,5 +1,5 @@ {{>client-imports}} -use {Api{{#apiInfo}}{{#apis}}{{#operations}}{{#operation}}, +use crate::{Api{{#apiInfo}}{{#apis}}{{#operations}}{{#operation}}, {{{operationId}}}Response{{/operation}}{{/operations}}{{/apis}}{{/apiInfo}} }; @@ -38,7 +38,7 @@ pub struct Client impl fmt::Debug for Client { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "Client {{ base_path: {} }}", self.base_path) } } @@ -205,7 +205,7 @@ impl From for ClientInitError { } impl fmt::Display for ClientInitError { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let s: &dyn fmt::Debug = self; s.fmt(f) } diff --git a/modules/openapi-generator/src/main/resources/rust-server/client-operation.mustache b/modules/openapi-generator/src/main/resources/rust-server/client-operation.mustache index e4ac8cd3428..f1a4659f2e0 100644 --- a/modules/openapi-generator/src/main/resources/rust-server/client-operation.mustache +++ b/modules/openapi-generator/src/main/resources/rust-server/client-operation.mustache @@ -179,7 +179,7 @@ headers: { let mut h = Headers::new(); h.set(ContentType("{{{contentType}}}".parse().unwrap())); - h.set(ContentId("{{{baseName}}}".parse().unwrap())); + h.set_raw("Content-ID", vec![b"{{{baseName}}}".to_vec()]); h }, {{#isBinary}} diff --git a/modules/openapi-generator/src/main/resources/rust-server/context.mustache b/modules/openapi-generator/src/main/resources/rust-server/context.mustache index c8a8cc8e8a6..6c627cbceeb 100644 --- a/modules/openapi-generator/src/main/resources/rust-server/context.mustache +++ b/modules/openapi-generator/src/main/resources/rust-server/context.mustache @@ -9,7 +9,7 @@ use std::marker::PhantomData; use swagger::auth::{AuthData, Authorization, Bearer, Scopes}; use swagger::context::ContextualPayload; use swagger::{EmptyContext, Has, Pop, Push, XSpanIdString}; -use Api; +use crate::Api; pub struct MakeAddContext { inner: T, diff --git a/modules/openapi-generator/src/main/resources/rust-server/example-client-main.mustache b/modules/openapi-generator/src/main/resources/rust-server/example-client-main.mustache index c877e0e33ab..b1f7bbeee95 100644 --- a/modules/openapi-generator/src/main/resources/rust-server/example-client-main.mustache +++ b/modules/openapi-generator/src/main/resources/rust-server/example-client-main.mustache @@ -1,30 +1,6 @@ #![allow(missing_docs, unused_variables, trivial_casts)] -extern crate {{{externCrateName}}}; -extern crate clap; -extern crate env_logger; -extern crate futures; -// log may be unused if there are no examples -#[allow(unused_imports)] -#[macro_use] -extern crate log; -#[macro_use] -extern crate swagger; -extern crate tokio; {{#hasCallbacks}} -extern crate chrono; -#[macro_use] -extern crate error_chain; -extern crate hyper; -{{#apiUsesUuid}} -extern crate uuid; -{{/apiUsesUuid}} - -#[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] -extern crate openssl; -#[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] -extern crate tokio_openssl; - mod server; {{/hasCallbacks}} @@ -37,6 +13,9 @@ use {{{externCrateName}}}::{Api, ApiNoContext, Client, ContextWrapperExt, models }; use clap::{App, Arg}; +#[allow(unused_imports)] +use log::info; + // swagger::Has may be unused if there are no examples #[allow(unused_imports)] use swagger::{ContextBuilder, EmptyContext, XSpanIdString, Has, Push, AuthData}; @@ -98,8 +77,8 @@ fn main() { .expect("Failed to create HTTP client") }; - let context: make_context_ty!(ContextBuilder, EmptyContext, Option, XSpanIdString) = - make_context!(ContextBuilder, EmptyContext, None as Option, XSpanIdString::default()); + let context: swagger::make_context_ty!(ContextBuilder, EmptyContext, Option, XSpanIdString) = + swagger::make_context!(ContextBuilder, EmptyContext, None as Option, XSpanIdString::default()); let client = client.with_context(context); diff --git a/modules/openapi-generator/src/main/resources/rust-server/example-server-common.mustache b/modules/openapi-generator/src/main/resources/rust-server/example-server-common.mustache index 840b3ade9c1..16fefd9e6eb 100644 --- a/modules/openapi-generator/src/main/resources/rust-server/example-server-common.mustache +++ b/modules/openapi-generator/src/main/resources/rust-server/example-server-common.mustache @@ -3,7 +3,7 @@ #![allow(unused_imports)] mod errors { - error_chain!{} + error_chain::error_chain!{} } pub use self::errors::*; @@ -12,6 +12,7 @@ use chrono; use futures::{future, Future, Stream}; use hyper::server::conn::Http; use hyper::service::MakeService as _; +use log::info; use openssl::ssl::SslAcceptorBuilder; use std::marker::PhantomData; use std::net::SocketAddr; diff --git a/modules/openapi-generator/src/main/resources/rust-server/example-server-main.mustache b/modules/openapi-generator/src/main/resources/rust-server/example-server-main.mustache index c526da954cf..3d7f7045a77 100644 --- a/modules/openapi-generator/src/main/resources/rust-server/example-server-main.mustache +++ b/modules/openapi-generator/src/main/resources/rust-server/example-server-main.mustache @@ -2,33 +2,6 @@ #![allow(missing_docs)] -// Imports required by this file. -// extern crate ; -extern crate {{{externCrateName}}}; -extern crate clap; -extern crate env_logger; -extern crate hyper; -#[macro_use] -extern crate log; -extern crate swagger; - -// Imports required by server library. -// extern crate {{{externCrateName}}}; -extern crate chrono; -#[macro_use] -extern crate error_chain; -extern crate futures; -// extern crate swagger; -extern crate tokio; -{{#apiUsesUuid}} -extern crate uuid; -{{/apiUsesUuid}} - -#[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] -extern crate openssl; -#[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] -extern crate tokio_openssl; - use clap::{App, Arg}; mod server; diff --git a/modules/openapi-generator/src/main/resources/rust-server/lib.mustache b/modules/openapi-generator/src/main/resources/rust-server/lib.mustache index cae68b264b7..e5135683f45 100644 --- a/modules/openapi-generator/src/main/resources/rust-server/lib.mustache +++ b/modules/openapi-generator/src/main/resources/rust-server/lib.mustache @@ -1,86 +1,5 @@ #![allow(missing_docs, trivial_casts, unused_variables, unused_mut, unused_imports, unused_extern_crates, non_camel_case_types)] -// Crates with macros - -#[macro_use] -extern crate serde_derive; -{{#hasCallbacks}} -#[cfg(any(feature = "client", feature = "server"))] -{{/hasCallbacks}} -{{^hasCallbacks}} -#[cfg(feature = "server")] -{{/hasCallbacks}} -#[macro_use] -extern crate lazy_static; -#[cfg(any(feature = "client", feature = "server"))] -#[macro_use] -extern crate url; -#[macro_use] -extern crate log; -{{#apiUsesMultipartRelated}} -#[cfg(any(feature = "client", feature = "server"))] -#[macro_use] -extern crate hyper_0_10; -{{/apiUsesMultipartRelated}} - -// Crates for conversion support -#[cfg(feature = "conversion")] -#[macro_use] -extern crate frunk_derives; -#[cfg(feature = "conversion")] -#[macro_use] -extern crate frunk_enum_derive; -#[cfg(feature = "conversion")] -extern crate frunk_core; - -extern crate mime; -extern crate serde; -extern crate futures; -extern crate chrono; -extern crate swagger; -extern crate serde_json; - -#[cfg(any(feature = "client", feature = "server"))] -extern crate hyper; -{{#hasCallbacks}} -#[cfg(any(feature = "client", feature = "server"))] -{{/hasCallbacks}} -{{^hasCallbacks}} -#[cfg(feature = "server")] -{{/hasCallbacks}} -#[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] -extern crate hyper_openssl; -{{#apiUsesMultipart}} -#[cfg(any(feature = "client", feature = "server"))] -extern crate mime_0_2; -{{/apiUsesMultipart}} -{{#apiUsesMultipartRelated}} -#[cfg(any(feature = "client", feature = "server"))] -extern crate mime_multipart; -{{/apiUsesMultipartRelated}} -{{#hasCallbacks}} -#[cfg(any(feature = "client", feature = "server"))] -{{/hasCallbacks}} -{{^hasCallbacks}} -#[cfg(feature = "server")] -{{/hasCallbacks}} -extern crate percent_encoding; -#[cfg(any(feature = "client", feature = "server"))] -extern crate serde_ignored; - -#[cfg(any(feature = "client", feature = "server"))] -{{#apiUsesUuid}}extern crate uuid;{{/apiUsesUuid}} - -{{#usesXml}}extern crate serde_xml_rs;{{/usesXml}} - -{{#apiUsesMultipartFormData}} -#[cfg(any(feature = "client", feature = "server"))] -extern crate multipart; -{{/apiUsesMultipartFormData}} - -#[cfg(any(feature = "client", feature = "server"))] -{{#usesUrlEncodedForm}}extern crate serde_urlencoded;{{/usesUrlEncodedForm}} - use futures::Stream; use std::io::Error; diff --git a/modules/openapi-generator/src/main/resources/rust-server/models.mustache b/modules/openapi-generator/src/main/resources/rust-server/models.mustache index 318910fb217..e76ae269c4e 100644 --- a/modules/openapi-generator/src/main/resources/rust-server/models.mustache +++ b/modules/openapi-generator/src/main/resources/rust-server/models.mustache @@ -1,8 +1,8 @@ #![allow(unused_qualifications)] -use models; +use crate::models; #[cfg(any(feature = "client", feature = "server"))] -use header; +use crate::header; {{! Don't "use" structs here - they can conflict with the names of models, and mean that the code won't compile }} {{#models}}{{#model}} @@ -12,8 +12,8 @@ use header; /// which helps with FFI. #[allow(non_camel_case_types)] #[repr(C)] -#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGenericEnum))]{{#xmlName}} +#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk_enum_derive::LabelledGenericEnum))]{{#xmlName}} #[serde(rename = "{{{xmlName}}}")]{{/xmlName}} pub enum {{{classname}}} { {{#allowableValues}}{{#enumVars}} #[serde(rename = {{{value}}})] @@ -21,7 +21,7 @@ pub enum {{{classname}}} { {{#allowableValues}}{{#enumVars}} } impl std::fmt::Display for {{{classname}}} { - fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match *self { {{#allowableValues}}{{#enumVars}} {{{classname}}}::{{{name}}} => write!(f, "{}", {{{value}}}),{{/enumVars}}{{/allowableValues}} } @@ -46,12 +46,12 @@ impl std::str::FromStr for {{{classname}}} { {{^isEnum}} {{#dataType}} {{#isMapModel}} -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] {{/isMapModel}} {{^isMapModel}} -#[derive(Debug, Clone, PartialEq, PartialOrd, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, PartialOrd, serde::Serialize, serde::Deserialize)] {{/isMapModel}} -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] {{#xmlName}} #[serde(rename = "{{{xmlName}}}")] {{/xmlName}} @@ -146,9 +146,19 @@ where serde_xml_rs::wrap_primitives(item, serializer, "{{{itemXmlName}}}") } -{{/itemXmlName}}{{/vendorExtensions}}{{! vec}}#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] -pub struct {{{classname}}}({{#vendorExtensions}}{{#itemXmlName}}#[serde(serialize_with = "wrap_in_{{{itemXmlName}}}")]{{/itemXmlName}}{{/vendorExtensions}}Vec<{{{arrayModelType}}}>); +{{/itemXmlName}} +{{/vendorExtensions}} +{{! vec}} +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] +pub struct {{{classname}}}( +{{#vendorExtensions}} +{{#itemXmlName}} + #[serde(serialize_with = "wrap_in_{{{itemXmlName}}}")] +{{/itemXmlName}} +{{/vendorExtensions}} + Vec<{{{arrayModelType}}}> +); impl std::convert::From> for {{{classname}}} { fn from(x: Vec<{{{arrayModelType}}}>) -> Self { @@ -234,20 +244,29 @@ impl std::str::FromStr for {{{classname}}} { } {{/arrayModelType}}{{^arrayModelType}}{{! general struct}} -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] {{#xmlName}} #[serde(rename = "{{{xmlName}}}")] {{/xmlName}} pub struct {{{classname}}} { {{#vars}}{{#description}} /// {{{description}}} {{/description}}{{#isEnum}} // Note: inline enums are not fully supported by openapi-generator -{{/isEnum}} #[serde(rename = "{{{baseName}}}")]{{#vendorExtensions}}{{#itemXmlName}} - #[serde(serialize_with = "wrap_in_{{{itemXmlName}}}")]{{/itemXmlName}}{{/vendorExtensions}}{{#required}} +{{/isEnum}} + #[serde(rename = "{{{baseName}}}")] +{{#vendorExtensions}} +{{#itemXmlName}} + #[serde(serialize_with = "wrap_in_{{{itemXmlName}}}")] +{{/itemXmlName}} +{{/vendorExtensions}} +{{#required}} pub {{{name}}}: {{#isNullable}}swagger::Nullable<{{/isNullable}}{{{dataType}}}{{#isNullable}}>{{/isNullable}}, -{{/required}}{{^required}}{{#isNullable}} +{{/required}} +{{^required}} +{{#isNullable}} #[serde(deserialize_with = "swagger::nullable_format::deserialize_optional_nullable")] - #[serde(default = "swagger::nullable_format::default_optional_nullable")]{{/isNullable}} + #[serde(default = "swagger::nullable_format::default_optional_nullable")] +{{/isNullable}} #[serde(skip_serializing_if="Option::is_none")] pub {{{name}}}: Option<{{#isNullable}}swagger::Nullable<{{/isNullable}}{{{dataType}}}{{#isNullable}}>{{/isNullable}}>, {{/required}} diff --git a/modules/openapi-generator/src/main/resources/rust-server/server-callbacks.mustache b/modules/openapi-generator/src/main/resources/rust-server/server-callbacks.mustache index e3b29f0e364..76f25f90aa7 100644 --- a/modules/openapi-generator/src/main/resources/rust-server/server-callbacks.mustache +++ b/modules/openapi-generator/src/main/resources/rust-server/server-callbacks.mustache @@ -1,5 +1,5 @@ {{>client-imports}} -use CallbackApi; +use crate::CallbackApi; {{#apiInfo}} {{#apis}} {{#operations}} @@ -7,7 +7,7 @@ use CallbackApi; {{#callbacks}} {{#urls}} {{#requests}} -use {{{operationId}}}Response; +use crate::{{{operationId}}}Response; {{/requests}} {{/urls}} {{/callbacks}} @@ -25,7 +25,7 @@ pub struct Client impl fmt::Debug for Client { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "Client") } } diff --git a/modules/openapi-generator/src/main/resources/rust-server/server-imports.mustache b/modules/openapi-generator/src/main/resources/rust-server/server-imports.mustache index b73cab65d17..ade68d62fff 100644 --- a/modules/openapi-generator/src/main/resources/rust-server/server-imports.mustache +++ b/modules/openapi-generator/src/main/resources/rust-server/server-imports.mustache @@ -3,9 +3,10 @@ use futures::{Future, future, Stream, stream}; use hyper; use hyper::{Request, Response, Error, StatusCode, Body, HeaderMap}; use hyper::header::{HeaderName, HeaderValue, CONTENT_TYPE}; -use url::form_urlencoded; +use log::warn; use serde_json; use std::io; +use url::form_urlencoded; #[allow(unused_imports)] use swagger; use swagger::{ApiError, XSpanIdString, Has, RequestParser}; @@ -14,7 +15,6 @@ use swagger::auth::Scopes; use swagger::context::ContextualPayload; {{#apiUsesMultipartRelated}} use hyper_0_10::header::{Headers, ContentType}; -header! { (ContentId, "Content-ID") => [String] } use mime_0_2::{TopLevel, SubLevel, Mime as Mime2}; use mime_multipart::{read_multipart_body, Node, Part}; {{/apiUsesMultipartRelated}} @@ -30,7 +30,7 @@ use serde_xml_rs; {{/usesXml}} #[allow(unused_imports)] -use models; -use header; +use crate::models; +use crate::header; pub use crate::context; diff --git a/modules/openapi-generator/src/main/resources/rust-server/server-mod.mustache b/modules/openapi-generator/src/main/resources/rust-server/server-mod.mustache index d4d047d258c..609db38999e 100644 --- a/modules/openapi-generator/src/main/resources/rust-server/server-mod.mustache +++ b/modules/openapi-generator/src/main/resources/rust-server/server-mod.mustache @@ -1,5 +1,5 @@ {{>server-imports}} -use {Api{{#apiInfo}}{{#apis}}{{#operations}}{{#operation}}, +use crate::{Api{{#apiInfo}}{{#apis}}{{#operations}}{{#operation}}, {{{operationId}}}Response{{/operation}}{{/operations}}{{/apis}}{{/apiInfo}} }; diff --git a/modules/openapi-generator/src/main/resources/rust-server/server-paths.mustache b/modules/openapi-generator/src/main/resources/rust-server/server-paths.mustache index b68f8ec124c..2930a49e163 100644 --- a/modules/openapi-generator/src/main/resources/rust-server/server-paths.mustache +++ b/modules/openapi-generator/src/main/resources/rust-server/server-paths.mustache @@ -1,5 +1,5 @@ mod paths { - extern crate regex; + use lazy_static::lazy_static; lazy_static! { pub static ref GLOBAL_REGEX_SET: regex::RegexSet = regex::RegexSet::new(vec![ @@ -10,7 +10,7 @@ mod paths { .expect("Unable to create global regex set"); } {{#pathSet}} - pub static ID_{{{PATH_ID}}}: usize = {{{index}}}; + pub(crate) static ID_{{{PATH_ID}}}: usize = {{{index}}}; {{#hasPathParams}} lazy_static! { pub static ref REGEX_{{{PATH_ID}}}: regex::Regex = diff --git a/samples/server/petstore/rust-server/output/multipart-v3/Cargo.toml b/samples/server/petstore/rust-server/output/multipart-v3/Cargo.toml index 8432d69bd65..2caa6327e8f 100644 --- a/samples/server/petstore/rust-server/output/multipart-v3/Cargo.toml +++ b/samples/server/petstore/rust-server/output/multipart-v3/Cargo.toml @@ -4,6 +4,7 @@ version = "1.0.7" authors = [] description = "API under test" license = "Unlicense" +edition = "2018" [features] default = ["client", "server"] @@ -33,11 +34,10 @@ openssl = {version = "0.10", optional = true } chrono = { version = "0.4", features = ["serde"] } futures = "0.1" swagger = "4.0" -log = "0.3.0" +log = "0.4.0" mime = "0.3" -serde = "1.0" -serde_derive = "1.0" +serde = { version = "1.0", features = ["derive"]} serde_json = "1.0" # Crates included if required by the API definition diff --git a/samples/server/petstore/rust-server/output/multipart-v3/examples/client/main.rs b/samples/server/petstore/rust-server/output/multipart-v3/examples/client/main.rs index 67cc693328d..b6ac0eea5f1 100644 --- a/samples/server/petstore/rust-server/output/multipart-v3/examples/client/main.rs +++ b/samples/server/petstore/rust-server/output/multipart-v3/examples/client/main.rs @@ -1,16 +1,5 @@ #![allow(missing_docs, unused_variables, trivial_casts)] -extern crate multipart_v3; -extern crate clap; -extern crate env_logger; -extern crate futures; -// log may be unused if there are no examples -#[allow(unused_imports)] -#[macro_use] -extern crate log; -#[macro_use] -extern crate swagger; -extern crate tokio; #[allow(unused_imports)] use futures::{Future, future, Stream, stream}; @@ -23,6 +12,9 @@ use multipart_v3::{Api, ApiNoContext, Client, ContextWrapperExt, models, }; use clap::{App, Arg}; +#[allow(unused_imports)] +use log::info; + // swagger::Has may be unused if there are no examples #[allow(unused_imports)] use swagger::{ContextBuilder, EmptyContext, XSpanIdString, Has, Push, AuthData}; @@ -74,8 +66,8 @@ fn main() { .expect("Failed to create HTTP client") }; - let context: make_context_ty!(ContextBuilder, EmptyContext, Option, XSpanIdString) = - make_context!(ContextBuilder, EmptyContext, None as Option, XSpanIdString::default()); + let context: swagger::make_context_ty!(ContextBuilder, EmptyContext, Option, XSpanIdString) = + swagger::make_context!(ContextBuilder, EmptyContext, None as Option, XSpanIdString::default()); let client = client.with_context(context); diff --git a/samples/server/petstore/rust-server/output/multipart-v3/examples/server/main.rs b/samples/server/petstore/rust-server/output/multipart-v3/examples/server/main.rs index 2e53d2f6b8c..02fc2a751b0 100644 --- a/samples/server/petstore/rust-server/output/multipart-v3/examples/server/main.rs +++ b/samples/server/petstore/rust-server/output/multipart-v3/examples/server/main.rs @@ -2,30 +2,6 @@ #![allow(missing_docs)] -// Imports required by this file. -// extern crate ; -extern crate multipart_v3; -extern crate clap; -extern crate env_logger; -extern crate hyper; -#[macro_use] -extern crate log; -extern crate swagger; - -// Imports required by server library. -// extern crate multipart_v3; -extern crate chrono; -#[macro_use] -extern crate error_chain; -extern crate futures; -// extern crate swagger; -extern crate tokio; - -#[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] -extern crate openssl; -#[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] -extern crate tokio_openssl; - use clap::{App, Arg}; mod server; diff --git a/samples/server/petstore/rust-server/output/multipart-v3/examples/server/server.rs b/samples/server/petstore/rust-server/output/multipart-v3/examples/server/server.rs index ab9f6e7cd57..4c6938ce12c 100644 --- a/samples/server/petstore/rust-server/output/multipart-v3/examples/server/server.rs +++ b/samples/server/petstore/rust-server/output/multipart-v3/examples/server/server.rs @@ -3,7 +3,7 @@ #![allow(unused_imports)] mod errors { - error_chain!{} + error_chain::error_chain!{} } pub use self::errors::*; @@ -12,6 +12,7 @@ use chrono; use futures::{future, Future, Stream}; use hyper::server::conn::Http; use hyper::service::MakeService as _; +use log::info; use openssl::ssl::SslAcceptorBuilder; use std::marker::PhantomData; use std::net::SocketAddr; diff --git a/samples/server/petstore/rust-server/output/multipart-v3/src/client/mod.rs b/samples/server/petstore/rust-server/output/multipart-v3/src/client/mod.rs index c6d69f9d663..78d4402ad8c 100644 --- a/samples/server/petstore/rust-server/output/multipart-v3/src/client/mod.rs +++ b/samples/server/petstore/rust-server/output/multipart-v3/src/client/mod.rs @@ -24,13 +24,12 @@ use mime::Mime; use std::io::Cursor; use multipart::client::lazy::Multipart; use hyper_0_10::header::{Headers, ContentType}; -header! { (ContentId, "Content-ID") => [String] } use mime_multipart::{Node, Part, generate_boundary, write_multipart}; -use models; -use header; +use crate::models; +use crate::header; -define_encode_set! { +url::define_encode_set! { /// This encode set is used for object IDs /// /// Aside from the special characters defined in the `PATH_SEGMENT_ENCODE_SET`, @@ -38,7 +37,7 @@ define_encode_set! { pub ID_ENCODE_SET = [PATH_SEGMENT_ENCODE_SET] | {'|'} } -use {Api, +use crate::{Api, MultipartRelatedRequestPostResponse, MultipartRequestPostResponse, MultipleIdenticalMimeTypesPostResponse @@ -75,7 +74,7 @@ pub struct Client impl fmt::Debug for Client { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "Client {{ base_path: {} }}", self.base_path) } } @@ -242,7 +241,7 @@ impl From for ClientInitError { } impl fmt::Display for ClientInitError { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let s: &dyn fmt::Debug = self; s.fmt(f) } @@ -309,7 +308,7 @@ impl Api for Client where headers: { let mut h = Headers::new(); h.set(ContentType("application/json".parse().unwrap())); - h.set(ContentId("object_field".parse().unwrap())); + h.set_raw("Content-ID", vec![b"object_field".to_vec()]); h }, body: serde_json::to_string(&object_field) @@ -324,7 +323,7 @@ impl Api for Client where headers: { let mut h = Headers::new(); h.set(ContentType("application/zip".parse().unwrap())); - h.set(ContentId("optional_binary_field".parse().unwrap())); + h.set_raw("Content-ID", vec![b"optional_binary_field".to_vec()]); h }, body: optional_binary_field.0, @@ -337,7 +336,7 @@ impl Api for Client where headers: { let mut h = Headers::new(); h.set(ContentType("image/png".parse().unwrap())); - h.set(ContentId("required_binary_field".parse().unwrap())); + h.set_raw("Content-ID", vec![b"required_binary_field".to_vec()]); h }, body: param_required_binary_field.0, @@ -602,7 +601,7 @@ impl Api for Client where headers: { let mut h = Headers::new(); h.set(ContentType("application/octet-stream".parse().unwrap())); - h.set(ContentId("binary1".parse().unwrap())); + h.set_raw("Content-ID", vec![b"binary1".to_vec()]); h }, body: binary1.0, @@ -615,7 +614,7 @@ impl Api for Client where headers: { let mut h = Headers::new(); h.set(ContentType("application/octet-stream".parse().unwrap())); - h.set(ContentId("binary2".parse().unwrap())); + h.set_raw("Content-ID", vec![b"binary2".to_vec()]); h }, body: binary2.0, diff --git a/samples/server/petstore/rust-server/output/multipart-v3/src/context.rs b/samples/server/petstore/rust-server/output/multipart-v3/src/context.rs index d17a78ef276..d14e73f822d 100644 --- a/samples/server/petstore/rust-server/output/multipart-v3/src/context.rs +++ b/samples/server/petstore/rust-server/output/multipart-v3/src/context.rs @@ -9,7 +9,7 @@ use std::marker::PhantomData; use swagger::auth::{AuthData, Authorization, Bearer, Scopes}; use swagger::context::ContextualPayload; use swagger::{EmptyContext, Has, Pop, Push, XSpanIdString}; -use Api; +use crate::Api; pub struct MakeAddContext { inner: T, diff --git a/samples/server/petstore/rust-server/output/multipart-v3/src/lib.rs b/samples/server/petstore/rust-server/output/multipart-v3/src/lib.rs index 4e4352430ca..b1ab43ac849 100644 --- a/samples/server/petstore/rust-server/output/multipart-v3/src/lib.rs +++ b/samples/server/petstore/rust-server/output/multipart-v3/src/lib.rs @@ -1,63 +1,5 @@ #![allow(missing_docs, trivial_casts, unused_variables, unused_mut, unused_imports, unused_extern_crates, non_camel_case_types)] -// Crates with macros - -#[macro_use] -extern crate serde_derive; -#[cfg(feature = "server")] -#[macro_use] -extern crate lazy_static; -#[cfg(any(feature = "client", feature = "server"))] -#[macro_use] -extern crate url; -#[macro_use] -extern crate log; -#[cfg(any(feature = "client", feature = "server"))] -#[macro_use] -extern crate hyper_0_10; - -// Crates for conversion support -#[cfg(feature = "conversion")] -#[macro_use] -extern crate frunk_derives; -#[cfg(feature = "conversion")] -#[macro_use] -extern crate frunk_enum_derive; -#[cfg(feature = "conversion")] -extern crate frunk_core; - -extern crate mime; -extern crate serde; -extern crate futures; -extern crate chrono; -extern crate swagger; -extern crate serde_json; - -#[cfg(any(feature = "client", feature = "server"))] -extern crate hyper; -#[cfg(feature = "server")] -#[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] -extern crate hyper_openssl; -#[cfg(any(feature = "client", feature = "server"))] -extern crate mime_0_2; -#[cfg(any(feature = "client", feature = "server"))] -extern crate mime_multipart; -#[cfg(feature = "server")] -extern crate percent_encoding; -#[cfg(any(feature = "client", feature = "server"))] -extern crate serde_ignored; - -#[cfg(any(feature = "client", feature = "server"))] - - - - -#[cfg(any(feature = "client", feature = "server"))] -extern crate multipart; - -#[cfg(any(feature = "client", feature = "server"))] - - use futures::Stream; use std::io::Error; diff --git a/samples/server/petstore/rust-server/output/multipart-v3/src/models.rs b/samples/server/petstore/rust-server/output/multipart-v3/src/models.rs index 3196035ce5f..e4aba1221cf 100644 --- a/samples/server/petstore/rust-server/output/multipart-v3/src/models.rs +++ b/samples/server/petstore/rust-server/output/multipart-v3/src/models.rs @@ -1,8 +1,8 @@ #![allow(unused_qualifications)] -use models; +use crate::models; #[cfg(any(feature = "client", feature = "server"))] -use header; +use crate::header; // Methods for converting between header::IntoHeaderValue and hyper::header::HeaderValue @@ -22,8 +22,8 @@ impl From for header::IntoHeaderValue } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct InlineObject { #[serde(rename = "binary1")] #[serde(skip_serializing_if="Option::is_none")] @@ -125,8 +125,8 @@ impl From for header::IntoHeaderValue for header::IntoHeaderValue for header::IntoHeaderValue [String] } use mime_0_2::{TopLevel, SubLevel, Mime as Mime2}; use mime_multipart::{read_multipart_body, Node, Part}; use multipart::server::Multipart; use multipart::server::save::SaveResult; #[allow(unused_imports)] -use models; -use header; +use crate::models; +use crate::header; pub use crate::context; -use {Api, +use crate::{Api, MultipartRelatedRequestPostResponse, MultipartRequestPostResponse, MultipleIdenticalMimeTypesPostResponse }; mod paths { - extern crate regex; + use lazy_static::lazy_static; lazy_static! { pub static ref GLOBAL_REGEX_SET: regex::RegexSet = regex::RegexSet::new(vec![ @@ -42,9 +42,9 @@ mod paths { ]) .expect("Unable to create global regex set"); } - pub static ID_MULTIPART_RELATED_REQUEST: usize = 0; - pub static ID_MULTIPART_REQUEST: usize = 1; - pub static ID_MULTIPLE_IDENTICAL_MIME_TYPES: usize = 2; + pub(crate) static ID_MULTIPART_RELATED_REQUEST: usize = 0; + pub(crate) static ID_MULTIPART_REQUEST: usize = 1; + pub(crate) static ID_MULTIPLE_IDENTICAL_MIME_TYPES: usize = 2; } pub struct MakeService { diff --git a/samples/server/petstore/rust-server/output/no-example-v3/Cargo.toml b/samples/server/petstore/rust-server/output/no-example-v3/Cargo.toml index 5504c5aab04..b8dc9850d73 100644 --- a/samples/server/petstore/rust-server/output/no-example-v3/Cargo.toml +++ b/samples/server/petstore/rust-server/output/no-example-v3/Cargo.toml @@ -4,6 +4,7 @@ version = "0.0.1" authors = [] description = "No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)" license = "Unlicense" +edition = "2018" [features] default = ["client", "server"] @@ -27,11 +28,10 @@ openssl = {version = "0.10", optional = true } chrono = { version = "0.4", features = ["serde"] } futures = "0.1" swagger = "4.0" -log = "0.3.0" +log = "0.4.0" mime = "0.3" -serde = "1.0" -serde_derive = "1.0" +serde = { version = "1.0", features = ["derive"]} serde_json = "1.0" # Crates included if required by the API definition diff --git a/samples/server/petstore/rust-server/output/no-example-v3/examples/client/main.rs b/samples/server/petstore/rust-server/output/no-example-v3/examples/client/main.rs index 70490842012..1f404ee95b6 100644 --- a/samples/server/petstore/rust-server/output/no-example-v3/examples/client/main.rs +++ b/samples/server/petstore/rust-server/output/no-example-v3/examples/client/main.rs @@ -1,16 +1,5 @@ #![allow(missing_docs, unused_variables, trivial_casts)] -extern crate no_example_v3; -extern crate clap; -extern crate env_logger; -extern crate futures; -// log may be unused if there are no examples -#[allow(unused_imports)] -#[macro_use] -extern crate log; -#[macro_use] -extern crate swagger; -extern crate tokio; #[allow(unused_imports)] use futures::{Future, future, Stream, stream}; @@ -21,6 +10,9 @@ use no_example_v3::{Api, ApiNoContext, Client, ContextWrapperExt, models, }; use clap::{App, Arg}; +#[allow(unused_imports)] +use log::info; + // swagger::Has may be unused if there are no examples #[allow(unused_imports)] use swagger::{ContextBuilder, EmptyContext, XSpanIdString, Has, Push, AuthData}; @@ -69,8 +61,8 @@ fn main() { .expect("Failed to create HTTP client") }; - let context: make_context_ty!(ContextBuilder, EmptyContext, Option, XSpanIdString) = - make_context!(ContextBuilder, EmptyContext, None as Option, XSpanIdString::default()); + let context: swagger::make_context_ty!(ContextBuilder, EmptyContext, Option, XSpanIdString) = + swagger::make_context!(ContextBuilder, EmptyContext, None as Option, XSpanIdString::default()); let client = client.with_context(context); diff --git a/samples/server/petstore/rust-server/output/no-example-v3/examples/server/main.rs b/samples/server/petstore/rust-server/output/no-example-v3/examples/server/main.rs index 0f46a72670a..30b1c5c5e12 100644 --- a/samples/server/petstore/rust-server/output/no-example-v3/examples/server/main.rs +++ b/samples/server/petstore/rust-server/output/no-example-v3/examples/server/main.rs @@ -2,30 +2,6 @@ #![allow(missing_docs)] -// Imports required by this file. -// extern crate ; -extern crate no_example_v3; -extern crate clap; -extern crate env_logger; -extern crate hyper; -#[macro_use] -extern crate log; -extern crate swagger; - -// Imports required by server library. -// extern crate no_example_v3; -extern crate chrono; -#[macro_use] -extern crate error_chain; -extern crate futures; -// extern crate swagger; -extern crate tokio; - -#[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] -extern crate openssl; -#[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] -extern crate tokio_openssl; - use clap::{App, Arg}; mod server; diff --git a/samples/server/petstore/rust-server/output/no-example-v3/examples/server/server.rs b/samples/server/petstore/rust-server/output/no-example-v3/examples/server/server.rs index 2d2c3311c36..0ec693c32e5 100644 --- a/samples/server/petstore/rust-server/output/no-example-v3/examples/server/server.rs +++ b/samples/server/petstore/rust-server/output/no-example-v3/examples/server/server.rs @@ -3,7 +3,7 @@ #![allow(unused_imports)] mod errors { - error_chain!{} + error_chain::error_chain!{} } pub use self::errors::*; @@ -12,6 +12,7 @@ use chrono; use futures::{future, Future, Stream}; use hyper::server::conn::Http; use hyper::service::MakeService as _; +use log::info; use openssl::ssl::SslAcceptorBuilder; use std::marker::PhantomData; use std::net::SocketAddr; diff --git a/samples/server/petstore/rust-server/output/no-example-v3/src/client/mod.rs b/samples/server/petstore/rust-server/output/no-example-v3/src/client/mod.rs index 529cbe99e0e..fb53ab023a1 100644 --- a/samples/server/petstore/rust-server/output/no-example-v3/src/client/mod.rs +++ b/samples/server/petstore/rust-server/output/no-example-v3/src/client/mod.rs @@ -21,10 +21,10 @@ use swagger::{ApiError, Connector, client::Service, XSpanIdString, Has, AuthData use url::form_urlencoded; use url::percent_encoding::{utf8_percent_encode, PATH_SEGMENT_ENCODE_SET, QUERY_ENCODE_SET}; -use models; -use header; +use crate::models; +use crate::header; -define_encode_set! { +url::define_encode_set! { /// This encode set is used for object IDs /// /// Aside from the special characters defined in the `PATH_SEGMENT_ENCODE_SET`, @@ -32,7 +32,7 @@ define_encode_set! { pub ID_ENCODE_SET = [PATH_SEGMENT_ENCODE_SET] | {'|'} } -use {Api, +use crate::{Api, OpGetResponse }; @@ -67,7 +67,7 @@ pub struct Client impl fmt::Debug for Client { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "Client {{ base_path: {} }}", self.base_path) } } @@ -234,7 +234,7 @@ impl From for ClientInitError { } impl fmt::Display for ClientInitError { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let s: &dyn fmt::Debug = self; s.fmt(f) } diff --git a/samples/server/petstore/rust-server/output/no-example-v3/src/context.rs b/samples/server/petstore/rust-server/output/no-example-v3/src/context.rs index d17a78ef276..d14e73f822d 100644 --- a/samples/server/petstore/rust-server/output/no-example-v3/src/context.rs +++ b/samples/server/petstore/rust-server/output/no-example-v3/src/context.rs @@ -9,7 +9,7 @@ use std::marker::PhantomData; use swagger::auth::{AuthData, Authorization, Bearer, Scopes}; use swagger::context::ContextualPayload; use swagger::{EmptyContext, Has, Pop, Push, XSpanIdString}; -use Api; +use crate::Api; pub struct MakeAddContext { inner: T, diff --git a/samples/server/petstore/rust-server/output/no-example-v3/src/lib.rs b/samples/server/petstore/rust-server/output/no-example-v3/src/lib.rs index 764b6519751..0a6aa8ad57e 100644 --- a/samples/server/petstore/rust-server/output/no-example-v3/src/lib.rs +++ b/samples/server/petstore/rust-server/output/no-example-v3/src/lib.rs @@ -1,54 +1,5 @@ #![allow(missing_docs, trivial_casts, unused_variables, unused_mut, unused_imports, unused_extern_crates, non_camel_case_types)] -// Crates with macros - -#[macro_use] -extern crate serde_derive; -#[cfg(feature = "server")] -#[macro_use] -extern crate lazy_static; -#[cfg(any(feature = "client", feature = "server"))] -#[macro_use] -extern crate url; -#[macro_use] -extern crate log; - -// Crates for conversion support -#[cfg(feature = "conversion")] -#[macro_use] -extern crate frunk_derives; -#[cfg(feature = "conversion")] -#[macro_use] -extern crate frunk_enum_derive; -#[cfg(feature = "conversion")] -extern crate frunk_core; - -extern crate mime; -extern crate serde; -extern crate futures; -extern crate chrono; -extern crate swagger; -extern crate serde_json; - -#[cfg(any(feature = "client", feature = "server"))] -extern crate hyper; -#[cfg(feature = "server")] -#[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] -extern crate hyper_openssl; -#[cfg(feature = "server")] -extern crate percent_encoding; -#[cfg(any(feature = "client", feature = "server"))] -extern crate serde_ignored; - -#[cfg(any(feature = "client", feature = "server"))] - - - - - -#[cfg(any(feature = "client", feature = "server"))] - - use futures::Stream; use std::io::Error; diff --git a/samples/server/petstore/rust-server/output/no-example-v3/src/models.rs b/samples/server/petstore/rust-server/output/no-example-v3/src/models.rs index 8c28e5edc2a..1f6e445cfee 100644 --- a/samples/server/petstore/rust-server/output/no-example-v3/src/models.rs +++ b/samples/server/petstore/rust-server/output/no-example-v3/src/models.rs @@ -1,8 +1,8 @@ #![allow(unused_qualifications)] -use models; +use crate::models; #[cfg(any(feature = "client", feature = "server"))] -use header; +use crate::header; // Methods for converting between header::IntoHeaderValue and hyper::header::HeaderValue @@ -22,8 +22,8 @@ impl From for header::IntoHeaderValue } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct InlineObject { #[serde(rename = "propery")] #[serde(skip_serializing_if="Option::is_none")] diff --git a/samples/server/petstore/rust-server/output/no-example-v3/src/server/mod.rs b/samples/server/petstore/rust-server/output/no-example-v3/src/server/mod.rs index ff66b021a66..36b8b332988 100644 --- a/samples/server/petstore/rust-server/output/no-example-v3/src/server/mod.rs +++ b/samples/server/petstore/rust-server/output/no-example-v3/src/server/mod.rs @@ -3,9 +3,10 @@ use futures::{Future, future, Stream, stream}; use hyper; use hyper::{Request, Response, Error, StatusCode, Body, HeaderMap}; use hyper::header::{HeaderName, HeaderValue, CONTENT_TYPE}; -use url::form_urlencoded; +use log::warn; use serde_json; use std::io; +use url::form_urlencoded; #[allow(unused_imports)] use swagger; use swagger::{ApiError, XSpanIdString, Has, RequestParser}; @@ -14,17 +15,17 @@ use swagger::auth::Scopes; use swagger::context::ContextualPayload; #[allow(unused_imports)] -use models; -use header; +use crate::models; +use crate::header; pub use crate::context; -use {Api, +use crate::{Api, OpGetResponse }; mod paths { - extern crate regex; + use lazy_static::lazy_static; lazy_static! { pub static ref GLOBAL_REGEX_SET: regex::RegexSet = regex::RegexSet::new(vec![ @@ -32,7 +33,7 @@ mod paths { ]) .expect("Unable to create global regex set"); } - pub static ID_OP: usize = 0; + pub(crate) static ID_OP: usize = 0; } pub struct MakeService { diff --git a/samples/server/petstore/rust-server/output/openapi-v3/Cargo.toml b/samples/server/petstore/rust-server/output/openapi-v3/Cargo.toml index 8961b9a89d8..67413a16903 100644 --- a/samples/server/petstore/rust-server/output/openapi-v3/Cargo.toml +++ b/samples/server/petstore/rust-server/output/openapi-v3/Cargo.toml @@ -4,6 +4,7 @@ version = "1.0.7" authors = [] description = "API under test" license = "Unlicense" +edition = "2018" [features] default = ["client", "server"] @@ -29,11 +30,10 @@ openssl = {version = "0.10", optional = true } chrono = { version = "0.4", features = ["serde"] } futures = "0.1" swagger = "4.0" -log = "0.3.0" +log = "0.4.0" mime = "0.3" -serde = "1.0" -serde_derive = "1.0" +serde = { version = "1.0", features = ["derive"]} serde_json = "1.0" # Crates included if required by the API definition diff --git a/samples/server/petstore/rust-server/output/openapi-v3/examples/client/main.rs b/samples/server/petstore/rust-server/output/openapi-v3/examples/client/main.rs index c9ae3774050..20d587392f5 100644 --- a/samples/server/petstore/rust-server/output/openapi-v3/examples/client/main.rs +++ b/samples/server/petstore/rust-server/output/openapi-v3/examples/client/main.rs @@ -1,26 +1,4 @@ #![allow(missing_docs, unused_variables, trivial_casts)] -extern crate openapi_v3; -extern crate clap; -extern crate env_logger; -extern crate futures; - -// log may be unused if there are no examples -#[allow(unused_imports)] -#[macro_use] -extern crate log; -#[macro_use] -extern crate swagger; -extern crate tokio; -extern crate chrono; -#[macro_use] -extern crate error_chain; -extern crate hyper; -extern crate uuid; - -#[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] -extern crate openssl; -#[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] -extern crate tokio_openssl; mod server; @@ -55,6 +33,9 @@ use openapi_v3::{Api, ApiNoContext, Client, ContextWrapperExt, models, }; use clap::{App, Arg}; +#[allow(unused_imports)] +use log::info; + // swagger::Has may be unused if there are no examples #[allow(unused_imports)] use swagger::{ContextBuilder, EmptyContext, XSpanIdString, Has, Push, AuthData}; @@ -125,8 +106,8 @@ fn main() { .expect("Failed to create HTTP client") }; - let context: make_context_ty!(ContextBuilder, EmptyContext, Option, XSpanIdString) = - make_context!(ContextBuilder, EmptyContext, None as Option, XSpanIdString::default()); + let context: swagger::make_context_ty!(ContextBuilder, EmptyContext, Option, XSpanIdString) = + swagger::make_context!(ContextBuilder, EmptyContext, None as Option, XSpanIdString::default()); let client = client.with_context(context); diff --git a/samples/server/petstore/rust-server/output/openapi-v3/examples/client/server.rs b/samples/server/petstore/rust-server/output/openapi-v3/examples/client/server.rs index 99edf0b4636..2e2a3036b65 100644 --- a/samples/server/petstore/rust-server/output/openapi-v3/examples/client/server.rs +++ b/samples/server/petstore/rust-server/output/openapi-v3/examples/client/server.rs @@ -3,7 +3,7 @@ #![allow(unused_imports)] mod errors { - error_chain!{} + error_chain::error_chain!{} } pub use self::errors::*; @@ -12,6 +12,7 @@ use chrono; use futures::{future, Future, Stream}; use hyper::server::conn::Http; use hyper::service::MakeService as _; +use log::info; use openssl::ssl::SslAcceptorBuilder; use std::marker::PhantomData; use std::net::SocketAddr; diff --git a/samples/server/petstore/rust-server/output/openapi-v3/examples/server/main.rs b/samples/server/petstore/rust-server/output/openapi-v3/examples/server/main.rs index abd9a48496a..bc1abfaa554 100644 --- a/samples/server/petstore/rust-server/output/openapi-v3/examples/server/main.rs +++ b/samples/server/petstore/rust-server/output/openapi-v3/examples/server/main.rs @@ -2,31 +2,6 @@ #![allow(missing_docs)] -// Imports required by this file. -// extern crate ; -extern crate openapi_v3; -extern crate clap; -extern crate env_logger; -extern crate hyper; -#[macro_use] -extern crate log; -extern crate swagger; - -// Imports required by server library. -// extern crate openapi_v3; -extern crate chrono; -#[macro_use] -extern crate error_chain; -extern crate futures; -// extern crate swagger; -extern crate tokio; -extern crate uuid; - -#[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] -extern crate openssl; -#[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] -extern crate tokio_openssl; - use clap::{App, Arg}; mod server; diff --git a/samples/server/petstore/rust-server/output/openapi-v3/examples/server/server.rs b/samples/server/petstore/rust-server/output/openapi-v3/examples/server/server.rs index d33c51d0ac9..0326561a01d 100644 --- a/samples/server/petstore/rust-server/output/openapi-v3/examples/server/server.rs +++ b/samples/server/petstore/rust-server/output/openapi-v3/examples/server/server.rs @@ -3,7 +3,7 @@ #![allow(unused_imports)] mod errors { - error_chain!{} + error_chain::error_chain!{} } pub use self::errors::*; @@ -12,6 +12,7 @@ use chrono; use futures::{future, Future, Stream}; use hyper::server::conn::Http; use hyper::service::MakeService as _; +use log::info; use openssl::ssl::SslAcceptorBuilder; use std::marker::PhantomData; use std::net::SocketAddr; diff --git a/samples/server/petstore/rust-server/output/openapi-v3/src/client/callbacks.rs b/samples/server/petstore/rust-server/output/openapi-v3/src/client/callbacks.rs index a2d61295bb5..4e601555e08 100644 --- a/samples/server/petstore/rust-server/output/openapi-v3/src/client/callbacks.rs +++ b/samples/server/petstore/rust-server/output/openapi-v3/src/client/callbacks.rs @@ -3,9 +3,10 @@ use futures::{Future, future, Stream, stream}; use hyper; use hyper::{Request, Response, Error, StatusCode, Body, HeaderMap}; use hyper::header::{HeaderName, HeaderValue, CONTENT_TYPE}; -use url::form_urlencoded; +use log::warn; use serde_json; use std::io; +use url::form_urlencoded; #[allow(unused_imports)] use swagger; use swagger::{ApiError, XSpanIdString, Has, RequestParser}; @@ -16,17 +17,17 @@ use uuid; use serde_xml_rs; #[allow(unused_imports)] -use models; -use header; +use crate::models; +use crate::header; pub use crate::context; -use CallbackApi as Api; -use CallbackCallbackWithHeaderPostResponse; -use CallbackCallbackPostResponse; +use crate::CallbackApi as Api; +use crate::CallbackCallbackWithHeaderPostResponse; +use crate::CallbackCallbackPostResponse; mod paths { - extern crate regex; + use lazy_static::lazy_static; lazy_static! { pub static ref GLOBAL_REGEX_SET: regex::RegexSet = regex::RegexSet::new(vec![ @@ -35,13 +36,13 @@ mod paths { ]) .expect("Unable to create global regex set"); } - pub static ID_REQUEST_QUERY_URL_CALLBACK: usize = 0; + pub(crate) static ID_REQUEST_QUERY_URL_CALLBACK: usize = 0; lazy_static! { pub static ref REGEX_REQUEST_QUERY_URL_CALLBACK: regex::Regex = regex::Regex::new(r"^/(?P.*)/callback$") .expect("Unable to create regex for REQUEST_QUERY_URL_CALLBACK"); } - pub static ID_REQUEST_QUERY_URL_CALLBACK_WITH_HEADER: usize = 1; + pub(crate) static ID_REQUEST_QUERY_URL_CALLBACK_WITH_HEADER: usize = 1; lazy_static! { pub static ref REGEX_REQUEST_QUERY_URL_CALLBACK_WITH_HEADER: regex::Regex = regex::Regex::new(r"^/(?P.*)/callback-with-header$") diff --git a/samples/server/petstore/rust-server/output/openapi-v3/src/client/mod.rs b/samples/server/petstore/rust-server/output/openapi-v3/src/client/mod.rs index fc63ff2b5eb..cd7c768a381 100644 --- a/samples/server/petstore/rust-server/output/openapi-v3/src/client/mod.rs +++ b/samples/server/petstore/rust-server/output/openapi-v3/src/client/mod.rs @@ -23,10 +23,10 @@ use url::percent_encoding::{utf8_percent_encode, PATH_SEGMENT_ENCODE_SET, QUERY_ use uuid; use serde_xml_rs; -use models; -use header; +use crate::models; +use crate::header; -define_encode_set! { +url::define_encode_set! { /// This encode set is used for object IDs /// /// Aside from the special characters defined in the `PATH_SEGMENT_ENCODE_SET`, @@ -34,7 +34,7 @@ define_encode_set! { pub ID_ENCODE_SET = [PATH_SEGMENT_ENCODE_SET] | {'|'} } -use {Api, +use crate::{Api, CallbackWithHeaderPostResponse, ComplexQueryParamGetResponse, EnumInPathPathParamGetResponse, @@ -93,7 +93,7 @@ pub struct Client impl fmt::Debug for Client { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "Client {{ base_path: {} }}", self.base_path) } } @@ -260,7 +260,7 @@ impl From for ClientInitError { } impl fmt::Display for ClientInitError { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let s: &dyn fmt::Debug = self; s.fmt(f) } diff --git a/samples/server/petstore/rust-server/output/openapi-v3/src/context.rs b/samples/server/petstore/rust-server/output/openapi-v3/src/context.rs index 1cec574aec7..3f15f7b0a77 100644 --- a/samples/server/petstore/rust-server/output/openapi-v3/src/context.rs +++ b/samples/server/petstore/rust-server/output/openapi-v3/src/context.rs @@ -9,7 +9,7 @@ use std::marker::PhantomData; use swagger::auth::{AuthData, Authorization, Bearer, Scopes}; use swagger::context::ContextualPayload; use swagger::{EmptyContext, Has, Pop, Push, XSpanIdString}; -use Api; +use crate::Api; pub struct MakeAddContext { inner: T, diff --git a/samples/server/petstore/rust-server/output/openapi-v3/src/lib.rs b/samples/server/petstore/rust-server/output/openapi-v3/src/lib.rs index ff8f91ec55e..7379ce171f3 100644 --- a/samples/server/petstore/rust-server/output/openapi-v3/src/lib.rs +++ b/samples/server/petstore/rust-server/output/openapi-v3/src/lib.rs @@ -1,54 +1,5 @@ #![allow(missing_docs, trivial_casts, unused_variables, unused_mut, unused_imports, unused_extern_crates, non_camel_case_types)] -// Crates with macros - -#[macro_use] -extern crate serde_derive; -#[cfg(any(feature = "client", feature = "server"))] -#[macro_use] -extern crate lazy_static; -#[cfg(any(feature = "client", feature = "server"))] -#[macro_use] -extern crate url; -#[macro_use] -extern crate log; - -// Crates for conversion support -#[cfg(feature = "conversion")] -#[macro_use] -extern crate frunk_derives; -#[cfg(feature = "conversion")] -#[macro_use] -extern crate frunk_enum_derive; -#[cfg(feature = "conversion")] -extern crate frunk_core; - -extern crate mime; -extern crate serde; -extern crate futures; -extern crate chrono; -extern crate swagger; -extern crate serde_json; - -#[cfg(any(feature = "client", feature = "server"))] -extern crate hyper; -#[cfg(any(feature = "client", feature = "server"))] -#[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] -extern crate hyper_openssl; -#[cfg(any(feature = "client", feature = "server"))] -extern crate percent_encoding; -#[cfg(any(feature = "client", feature = "server"))] -extern crate serde_ignored; - -#[cfg(any(feature = "client", feature = "server"))] -extern crate uuid; - -extern crate serde_xml_rs; - - -#[cfg(any(feature = "client", feature = "server"))] - - use futures::Stream; use std::io::Error; diff --git a/samples/server/petstore/rust-server/output/openapi-v3/src/models.rs b/samples/server/petstore/rust-server/output/openapi-v3/src/models.rs index eeb75383d41..19c8a7d633f 100644 --- a/samples/server/petstore/rust-server/output/openapi-v3/src/models.rs +++ b/samples/server/petstore/rust-server/output/openapi-v3/src/models.rs @@ -1,8 +1,8 @@ #![allow(unused_qualifications)] -use models; +use crate::models; #[cfg(any(feature = "client", feature = "server"))] -use header; +use crate::header; // Methods for converting between header::IntoHeaderValue and hyper::header::HeaderValue @@ -30,9 +30,12 @@ where serde_xml_rs::wrap_primitives(item, serializer, "snake_another_xml_inner") } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] -pub struct AnotherXmlArray(#[serde(serialize_with = "wrap_in_snake_another_xml_inner")]Vec); +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] +pub struct AnotherXmlArray( + #[serde(serialize_with = "wrap_in_snake_another_xml_inner")] + Vec +); impl std::convert::From> for AnotherXmlArray { fn from(x: Vec) -> Self { @@ -127,8 +130,8 @@ impl AnotherXmlArray { } } -#[derive(Debug, Clone, PartialEq, PartialOrd, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, PartialOrd, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] #[serde(rename = "snake_another_xml_inner")] pub struct AnotherXmlInner(String); @@ -198,8 +201,8 @@ impl From for header::IntoHeaderValue for header::IntoHeaderValue std::fmt::Result { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match *self { EnumWithStarObject::FOO => write!(f, "{}", "FOO"), EnumWithStarObject::BAR => write!(f, "{}", "BAR"), @@ -467,8 +470,8 @@ impl EnumWithStarObject { } } -#[derive(Debug, Clone, PartialEq, PartialOrd, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, PartialOrd, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct Err(String); impl std::convert::From for Err { @@ -519,8 +522,8 @@ impl Err { } } -#[derive(Debug, Clone, PartialEq, PartialOrd, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, PartialOrd, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct Error(String); impl std::convert::From for Error { @@ -588,8 +591,8 @@ impl From for header::IntoHeaderValue for MyId { @@ -730,9 +733,11 @@ impl From for header::IntoHeaderValue { } } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] -pub struct MyIdList(Vec); +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] +pub struct MyIdList( + Vec +); impl std::convert::From> for MyIdList { fn from(x: Vec) -> Self { @@ -844,8 +849,8 @@ impl From for header::IntoHeaderValue } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct NullableTest { #[serde(rename = "nullable")] pub nullable: swagger::Nullable, @@ -1008,8 +1013,8 @@ impl From for header::IntoHeaderValue } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct ObjectHeader { #[serde(rename = "requiredObjectHeader")] pub required_object_header: bool, @@ -1122,8 +1127,8 @@ impl From for header::IntoHeaderValue { } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct ObjectParam { #[serde(rename = "requiredParam")] pub required_param: bool, @@ -1236,8 +1241,8 @@ impl From for header::IntoHeaderValue for header::IntoHeaderValue for Ok { @@ -1501,8 +1506,8 @@ impl Ok { } } -#[derive(Debug, Clone, PartialEq, PartialOrd, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, PartialOrd, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct OptionalObjectHeader(i32); impl std::convert::From for OptionalObjectHeader { @@ -1541,8 +1546,8 @@ impl OptionalObjectHeader { } } -#[derive(Debug, Clone, PartialEq, PartialOrd, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, PartialOrd, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct RequiredObjectHeader(bool); impl std::convert::From for RequiredObjectHeader { @@ -1581,8 +1586,8 @@ impl RequiredObjectHeader { } } -#[derive(Debug, Clone, PartialEq, PartialOrd, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, PartialOrd, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct Result(String); impl std::convert::From for Result { @@ -1638,8 +1643,8 @@ impl Result { /// which helps with FFI. #[allow(non_camel_case_types)] #[repr(C)] -#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGenericEnum))] +#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk_enum_derive::LabelledGenericEnum))] pub enum StringEnum { #[serde(rename = "FOO")] FOO, @@ -1648,7 +1653,7 @@ pub enum StringEnum { } impl std::fmt::Display for StringEnum { - fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match *self { StringEnum::FOO => write!(f, "{}", "FOO"), StringEnum::BAR => write!(f, "{}", "BAR"), @@ -1677,8 +1682,8 @@ impl StringEnum { } } -#[derive(Debug, Clone, PartialEq, PartialOrd, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, PartialOrd, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct StringObject(String); impl std::convert::From for StringObject { @@ -1730,8 +1735,8 @@ impl StringObject { } /// Test a model containing a UUID -#[derive(Debug, Clone, PartialEq, PartialOrd, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, PartialOrd, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct UuidObject(uuid::Uuid); impl std::convert::From for UuidObject { @@ -1795,9 +1800,12 @@ where serde_xml_rs::wrap_primitives(item, serializer, "camelXmlInner") } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] -pub struct XmlArray(#[serde(serialize_with = "wrap_in_camelXmlInner")]Vec); +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] +pub struct XmlArray( + #[serde(serialize_with = "wrap_in_camelXmlInner")] + Vec +); impl std::convert::From> for XmlArray { fn from(x: Vec) -> Self { @@ -1892,8 +1900,8 @@ impl XmlArray { } } -#[derive(Debug, Clone, PartialEq, PartialOrd, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, PartialOrd, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] #[serde(rename = "camelXmlInner")] pub struct XmlInner(String); @@ -1963,8 +1971,8 @@ impl From for header::IntoHeaderValue { } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] #[serde(rename = "camelXmlObject")] pub struct XmlObject { #[serde(rename = "innerString")] diff --git a/samples/server/petstore/rust-server/output/openapi-v3/src/server/callbacks.rs b/samples/server/petstore/rust-server/output/openapi-v3/src/server/callbacks.rs index 5518448ae6a..f93d34726a7 100644 --- a/samples/server/petstore/rust-server/output/openapi-v3/src/server/callbacks.rs +++ b/samples/server/petstore/rust-server/output/openapi-v3/src/server/callbacks.rs @@ -23,10 +23,10 @@ use url::percent_encoding::{utf8_percent_encode, PATH_SEGMENT_ENCODE_SET, QUERY_ use uuid; use serde_xml_rs; -use models; -use header; +use crate::models; +use crate::header; -define_encode_set! { +url::define_encode_set! { /// This encode set is used for object IDs /// /// Aside from the special characters defined in the `PATH_SEGMENT_ENCODE_SET`, @@ -34,9 +34,9 @@ define_encode_set! { pub ID_ENCODE_SET = [PATH_SEGMENT_ENCODE_SET] | {'|'} } -use CallbackApi; -use CallbackCallbackWithHeaderPostResponse; -use CallbackCallbackPostResponse; +use crate::CallbackApi; +use crate::CallbackCallbackWithHeaderPostResponse; +use crate::CallbackCallbackPostResponse; /// A client that implements the API by making HTTP calls out to a server. pub struct Client @@ -47,7 +47,7 @@ pub struct Client impl fmt::Debug for Client { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "Client") } } diff --git a/samples/server/petstore/rust-server/output/openapi-v3/src/server/mod.rs b/samples/server/petstore/rust-server/output/openapi-v3/src/server/mod.rs index 255a547a81a..ce43e975248 100644 --- a/samples/server/petstore/rust-server/output/openapi-v3/src/server/mod.rs +++ b/samples/server/petstore/rust-server/output/openapi-v3/src/server/mod.rs @@ -3,9 +3,10 @@ use futures::{Future, future, Stream, stream}; use hyper; use hyper::{Request, Response, Error, StatusCode, Body, HeaderMap}; use hyper::header::{HeaderName, HeaderValue, CONTENT_TYPE}; -use url::form_urlencoded; +use log::warn; use serde_json; use std::io; +use url::form_urlencoded; #[allow(unused_imports)] use swagger; use swagger::{ApiError, XSpanIdString, Has, RequestParser}; @@ -16,12 +17,12 @@ use uuid; use serde_xml_rs; #[allow(unused_imports)] -use models; -use header; +use crate::models; +use crate::header; pub use crate::context; -use {Api, +use crate::{Api, CallbackWithHeaderPostResponse, ComplexQueryParamGetResponse, EnumInPathPathParamGetResponse, @@ -50,7 +51,7 @@ use {Api, pub mod callbacks; mod paths { - extern crate regex; + use lazy_static::lazy_static; lazy_static! { pub static ref GLOBAL_REGEX_SET: regex::RegexSet = regex::RegexSet::new(vec![ @@ -78,37 +79,37 @@ mod paths { ]) .expect("Unable to create global regex set"); } - pub static ID_CALLBACK_WITH_HEADER: usize = 0; - pub static ID_COMPLEX_QUERY_PARAM: usize = 1; - pub static ID_ENUM_IN_PATH_PATH_PARAM: usize = 2; + pub(crate) static ID_CALLBACK_WITH_HEADER: usize = 0; + pub(crate) static ID_COMPLEX_QUERY_PARAM: usize = 1; + pub(crate) static ID_ENUM_IN_PATH_PATH_PARAM: usize = 2; lazy_static! { pub static ref REGEX_ENUM_IN_PATH_PATH_PARAM: regex::Regex = regex::Regex::new(r"^/enum_in_path/(?P[^/?#]*)$") .expect("Unable to create regex for ENUM_IN_PATH_PATH_PARAM"); } - pub static ID_MANDATORY_REQUEST_HEADER: usize = 3; - pub static ID_MERGE_PATCH_JSON: usize = 4; - pub static ID_MULTIGET: usize = 5; - pub static ID_MULTIPLE_AUTH_SCHEME: usize = 6; - pub static ID_OVERRIDE_SERVER: usize = 7; - pub static ID_PARAMGET: usize = 8; - pub static ID_READONLY_AUTH_SCHEME: usize = 9; - pub static ID_REGISTER_CALLBACK: usize = 10; - pub static ID_REPOS: usize = 11; - pub static ID_REPOS_REPOID: usize = 12; + pub(crate) static ID_MANDATORY_REQUEST_HEADER: usize = 3; + pub(crate) static ID_MERGE_PATCH_JSON: usize = 4; + pub(crate) static ID_MULTIGET: usize = 5; + pub(crate) static ID_MULTIPLE_AUTH_SCHEME: usize = 6; + pub(crate) static ID_OVERRIDE_SERVER: usize = 7; + pub(crate) static ID_PARAMGET: usize = 8; + pub(crate) static ID_READONLY_AUTH_SCHEME: usize = 9; + pub(crate) static ID_REGISTER_CALLBACK: usize = 10; + pub(crate) static ID_REPOS: usize = 11; + pub(crate) static ID_REPOS_REPOID: usize = 12; lazy_static! { pub static ref REGEX_REPOS_REPOID: regex::Regex = regex::Regex::new(r"^/repos/(?P[^/?#]*)$") .expect("Unable to create regex for REPOS_REPOID"); } - pub static ID_REQUIRED_OCTET_STREAM: usize = 13; - pub static ID_RESPONSES_WITH_HEADERS: usize = 14; - pub static ID_RFC7807: usize = 15; - pub static ID_UNTYPED_PROPERTY: usize = 16; - pub static ID_UUID: usize = 17; - pub static ID_XML: usize = 18; - pub static ID_XML_EXTRA: usize = 19; - pub static ID_XML_OTHER: usize = 20; + pub(crate) static ID_REQUIRED_OCTET_STREAM: usize = 13; + pub(crate) static ID_RESPONSES_WITH_HEADERS: usize = 14; + pub(crate) static ID_RFC7807: usize = 15; + pub(crate) static ID_UNTYPED_PROPERTY: usize = 16; + pub(crate) static ID_UUID: usize = 17; + pub(crate) static ID_XML: usize = 18; + pub(crate) static ID_XML_EXTRA: usize = 19; + pub(crate) static ID_XML_OTHER: usize = 20; } pub struct MakeService { diff --git a/samples/server/petstore/rust-server/output/ops-v3/Cargo.toml b/samples/server/petstore/rust-server/output/ops-v3/Cargo.toml index 9b4235bbb82..5785f23fafc 100644 --- a/samples/server/petstore/rust-server/output/ops-v3/Cargo.toml +++ b/samples/server/petstore/rust-server/output/ops-v3/Cargo.toml @@ -4,6 +4,7 @@ version = "0.0.1" authors = [] description = "No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)" license = "Unlicense" +edition = "2018" [features] default = ["client", "server"] @@ -27,11 +28,10 @@ openssl = {version = "0.10", optional = true } chrono = { version = "0.4", features = ["serde"] } futures = "0.1" swagger = "4.0" -log = "0.3.0" +log = "0.4.0" mime = "0.3" -serde = "1.0" -serde_derive = "1.0" +serde = { version = "1.0", features = ["derive"]} serde_json = "1.0" # Crates included if required by the API definition diff --git a/samples/server/petstore/rust-server/output/ops-v3/examples/client/main.rs b/samples/server/petstore/rust-server/output/ops-v3/examples/client/main.rs index c24ebfb82cd..9a9e8fa74ac 100644 --- a/samples/server/petstore/rust-server/output/ops-v3/examples/client/main.rs +++ b/samples/server/petstore/rust-server/output/ops-v3/examples/client/main.rs @@ -1,16 +1,5 @@ #![allow(missing_docs, unused_variables, trivial_casts)] -extern crate ops_v3; -extern crate clap; -extern crate env_logger; -extern crate futures; -// log may be unused if there are no examples -#[allow(unused_imports)] -#[macro_use] -extern crate log; -#[macro_use] -extern crate swagger; -extern crate tokio; #[allow(unused_imports)] use futures::{Future, future, Stream, stream}; @@ -57,6 +46,9 @@ use ops_v3::{Api, ApiNoContext, Client, ContextWrapperExt, models, }; use clap::{App, Arg}; +#[allow(unused_imports)] +use log::info; + // swagger::Has may be unused if there are no examples #[allow(unused_imports)] use swagger::{ContextBuilder, EmptyContext, XSpanIdString, Has, Push, AuthData}; @@ -142,8 +134,8 @@ fn main() { .expect("Failed to create HTTP client") }; - let context: make_context_ty!(ContextBuilder, EmptyContext, Option, XSpanIdString) = - make_context!(ContextBuilder, EmptyContext, None as Option, XSpanIdString::default()); + let context: swagger::make_context_ty!(ContextBuilder, EmptyContext, Option, XSpanIdString) = + swagger::make_context!(ContextBuilder, EmptyContext, None as Option, XSpanIdString::default()); let client = client.with_context(context); diff --git a/samples/server/petstore/rust-server/output/ops-v3/examples/server/main.rs b/samples/server/petstore/rust-server/output/ops-v3/examples/server/main.rs index d2d6ee972d5..c6ddb834be8 100644 --- a/samples/server/petstore/rust-server/output/ops-v3/examples/server/main.rs +++ b/samples/server/petstore/rust-server/output/ops-v3/examples/server/main.rs @@ -2,30 +2,6 @@ #![allow(missing_docs)] -// Imports required by this file. -// extern crate ; -extern crate ops_v3; -extern crate clap; -extern crate env_logger; -extern crate hyper; -#[macro_use] -extern crate log; -extern crate swagger; - -// Imports required by server library. -// extern crate ops_v3; -extern crate chrono; -#[macro_use] -extern crate error_chain; -extern crate futures; -// extern crate swagger; -extern crate tokio; - -#[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] -extern crate openssl; -#[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] -extern crate tokio_openssl; - use clap::{App, Arg}; mod server; diff --git a/samples/server/petstore/rust-server/output/ops-v3/examples/server/server.rs b/samples/server/petstore/rust-server/output/ops-v3/examples/server/server.rs index 15c370afc90..62fb2ae73b4 100644 --- a/samples/server/petstore/rust-server/output/ops-v3/examples/server/server.rs +++ b/samples/server/petstore/rust-server/output/ops-v3/examples/server/server.rs @@ -3,7 +3,7 @@ #![allow(unused_imports)] mod errors { - error_chain!{} + error_chain::error_chain!{} } pub use self::errors::*; @@ -12,6 +12,7 @@ use chrono; use futures::{future, Future, Stream}; use hyper::server::conn::Http; use hyper::service::MakeService as _; +use log::info; use openssl::ssl::SslAcceptorBuilder; use std::marker::PhantomData; use std::net::SocketAddr; diff --git a/samples/server/petstore/rust-server/output/ops-v3/src/client/mod.rs b/samples/server/petstore/rust-server/output/ops-v3/src/client/mod.rs index bf742b46319..f977f551cd5 100644 --- a/samples/server/petstore/rust-server/output/ops-v3/src/client/mod.rs +++ b/samples/server/petstore/rust-server/output/ops-v3/src/client/mod.rs @@ -21,10 +21,10 @@ use swagger::{ApiError, Connector, client::Service, XSpanIdString, Has, AuthData use url::form_urlencoded; use url::percent_encoding::{utf8_percent_encode, PATH_SEGMENT_ENCODE_SET, QUERY_ENCODE_SET}; -use models; -use header; +use crate::models; +use crate::header; -define_encode_set! { +url::define_encode_set! { /// This encode set is used for object IDs /// /// Aside from the special characters defined in the `PATH_SEGMENT_ENCODE_SET`, @@ -32,7 +32,7 @@ define_encode_set! { pub ID_ENCODE_SET = [PATH_SEGMENT_ENCODE_SET] | {'|'} } -use {Api, +use crate::{Api, Op10GetResponse, Op11GetResponse, Op12GetResponse, @@ -103,7 +103,7 @@ pub struct Client impl fmt::Debug for Client { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "Client {{ base_path: {} }}", self.base_path) } } @@ -270,7 +270,7 @@ impl From for ClientInitError { } impl fmt::Display for ClientInitError { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let s: &dyn fmt::Debug = self; s.fmt(f) } diff --git a/samples/server/petstore/rust-server/output/ops-v3/src/context.rs b/samples/server/petstore/rust-server/output/ops-v3/src/context.rs index d17a78ef276..d14e73f822d 100644 --- a/samples/server/petstore/rust-server/output/ops-v3/src/context.rs +++ b/samples/server/petstore/rust-server/output/ops-v3/src/context.rs @@ -9,7 +9,7 @@ use std::marker::PhantomData; use swagger::auth::{AuthData, Authorization, Bearer, Scopes}; use swagger::context::ContextualPayload; use swagger::{EmptyContext, Has, Pop, Push, XSpanIdString}; -use Api; +use crate::Api; pub struct MakeAddContext { inner: T, diff --git a/samples/server/petstore/rust-server/output/ops-v3/src/lib.rs b/samples/server/petstore/rust-server/output/ops-v3/src/lib.rs index b401b005229..6cb9e0f31c2 100644 --- a/samples/server/petstore/rust-server/output/ops-v3/src/lib.rs +++ b/samples/server/petstore/rust-server/output/ops-v3/src/lib.rs @@ -1,54 +1,5 @@ #![allow(missing_docs, trivial_casts, unused_variables, unused_mut, unused_imports, unused_extern_crates, non_camel_case_types)] -// Crates with macros - -#[macro_use] -extern crate serde_derive; -#[cfg(feature = "server")] -#[macro_use] -extern crate lazy_static; -#[cfg(any(feature = "client", feature = "server"))] -#[macro_use] -extern crate url; -#[macro_use] -extern crate log; - -// Crates for conversion support -#[cfg(feature = "conversion")] -#[macro_use] -extern crate frunk_derives; -#[cfg(feature = "conversion")] -#[macro_use] -extern crate frunk_enum_derive; -#[cfg(feature = "conversion")] -extern crate frunk_core; - -extern crate mime; -extern crate serde; -extern crate futures; -extern crate chrono; -extern crate swagger; -extern crate serde_json; - -#[cfg(any(feature = "client", feature = "server"))] -extern crate hyper; -#[cfg(feature = "server")] -#[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] -extern crate hyper_openssl; -#[cfg(feature = "server")] -extern crate percent_encoding; -#[cfg(any(feature = "client", feature = "server"))] -extern crate serde_ignored; - -#[cfg(any(feature = "client", feature = "server"))] - - - - - -#[cfg(any(feature = "client", feature = "server"))] - - use futures::Stream; use std::io::Error; diff --git a/samples/server/petstore/rust-server/output/ops-v3/src/models.rs b/samples/server/petstore/rust-server/output/ops-v3/src/models.rs index 5c07c3d050d..aaf4182a33e 100644 --- a/samples/server/petstore/rust-server/output/ops-v3/src/models.rs +++ b/samples/server/petstore/rust-server/output/ops-v3/src/models.rs @@ -1,6 +1,6 @@ #![allow(unused_qualifications)] -use models; +use crate::models; #[cfg(any(feature = "client", feature = "server"))] -use header; +use crate::header; diff --git a/samples/server/petstore/rust-server/output/ops-v3/src/server/mod.rs b/samples/server/petstore/rust-server/output/ops-v3/src/server/mod.rs index c12e72aff56..bffd26a1247 100644 --- a/samples/server/petstore/rust-server/output/ops-v3/src/server/mod.rs +++ b/samples/server/petstore/rust-server/output/ops-v3/src/server/mod.rs @@ -3,9 +3,10 @@ use futures::{Future, future, Stream, stream}; use hyper; use hyper::{Request, Response, Error, StatusCode, Body, HeaderMap}; use hyper::header::{HeaderName, HeaderValue, CONTENT_TYPE}; -use url::form_urlencoded; +use log::warn; use serde_json; use std::io; +use url::form_urlencoded; #[allow(unused_imports)] use swagger; use swagger::{ApiError, XSpanIdString, Has, RequestParser}; @@ -14,12 +15,12 @@ use swagger::auth::Scopes; use swagger::context::ContextualPayload; #[allow(unused_imports)] -use models; -use header; +use crate::models; +use crate::header; pub use crate::context; -use {Api, +use crate::{Api, Op10GetResponse, Op11GetResponse, Op12GetResponse, @@ -60,7 +61,7 @@ use {Api, }; mod paths { - extern crate regex; + use lazy_static::lazy_static; lazy_static! { pub static ref GLOBAL_REGEX_SET: regex::RegexSet = regex::RegexSet::new(vec![ @@ -104,43 +105,43 @@ mod paths { ]) .expect("Unable to create global regex set"); } - pub static ID_OP1: usize = 0; - pub static ID_OP10: usize = 1; - pub static ID_OP11: usize = 2; - pub static ID_OP12: usize = 3; - pub static ID_OP13: usize = 4; - pub static ID_OP14: usize = 5; - pub static ID_OP15: usize = 6; - pub static ID_OP16: usize = 7; - pub static ID_OP17: usize = 8; - pub static ID_OP18: usize = 9; - pub static ID_OP19: usize = 10; - pub static ID_OP2: usize = 11; - pub static ID_OP20: usize = 12; - pub static ID_OP21: usize = 13; - pub static ID_OP22: usize = 14; - pub static ID_OP23: usize = 15; - pub static ID_OP24: usize = 16; - pub static ID_OP25: usize = 17; - pub static ID_OP26: usize = 18; - pub static ID_OP27: usize = 19; - pub static ID_OP28: usize = 20; - pub static ID_OP29: usize = 21; - pub static ID_OP3: usize = 22; - pub static ID_OP30: usize = 23; - pub static ID_OP31: usize = 24; - pub static ID_OP32: usize = 25; - pub static ID_OP33: usize = 26; - pub static ID_OP34: usize = 27; - pub static ID_OP35: usize = 28; - pub static ID_OP36: usize = 29; - pub static ID_OP37: usize = 30; - pub static ID_OP4: usize = 31; - pub static ID_OP5: usize = 32; - pub static ID_OP6: usize = 33; - pub static ID_OP7: usize = 34; - pub static ID_OP8: usize = 35; - pub static ID_OP9: usize = 36; + pub(crate) static ID_OP1: usize = 0; + pub(crate) static ID_OP10: usize = 1; + pub(crate) static ID_OP11: usize = 2; + pub(crate) static ID_OP12: usize = 3; + pub(crate) static ID_OP13: usize = 4; + pub(crate) static ID_OP14: usize = 5; + pub(crate) static ID_OP15: usize = 6; + pub(crate) static ID_OP16: usize = 7; + pub(crate) static ID_OP17: usize = 8; + pub(crate) static ID_OP18: usize = 9; + pub(crate) static ID_OP19: usize = 10; + pub(crate) static ID_OP2: usize = 11; + pub(crate) static ID_OP20: usize = 12; + pub(crate) static ID_OP21: usize = 13; + pub(crate) static ID_OP22: usize = 14; + pub(crate) static ID_OP23: usize = 15; + pub(crate) static ID_OP24: usize = 16; + pub(crate) static ID_OP25: usize = 17; + pub(crate) static ID_OP26: usize = 18; + pub(crate) static ID_OP27: usize = 19; + pub(crate) static ID_OP28: usize = 20; + pub(crate) static ID_OP29: usize = 21; + pub(crate) static ID_OP3: usize = 22; + pub(crate) static ID_OP30: usize = 23; + pub(crate) static ID_OP31: usize = 24; + pub(crate) static ID_OP32: usize = 25; + pub(crate) static ID_OP33: usize = 26; + pub(crate) static ID_OP34: usize = 27; + pub(crate) static ID_OP35: usize = 28; + pub(crate) static ID_OP36: usize = 29; + pub(crate) static ID_OP37: usize = 30; + pub(crate) static ID_OP4: usize = 31; + pub(crate) static ID_OP5: usize = 32; + pub(crate) static ID_OP6: usize = 33; + pub(crate) static ID_OP7: usize = 34; + pub(crate) static ID_OP8: usize = 35; + pub(crate) static ID_OP9: usize = 36; } pub struct MakeService { diff --git a/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/Cargo.toml b/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/Cargo.toml index bfdbdde31fc..1ee9b478cdb 100644 --- a/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/Cargo.toml +++ b/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/Cargo.toml @@ -4,6 +4,7 @@ version = "1.0.0" authors = [] description = "This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\" license = "Unlicense" +edition = "2018" [features] default = ["client", "server"] @@ -32,11 +33,10 @@ openssl = {version = "0.10", optional = true } chrono = { version = "0.4", features = ["serde"] } futures = "0.1" swagger = "4.0" -log = "0.3.0" +log = "0.4.0" mime = "0.3" -serde = "1.0" -serde_derive = "1.0" +serde = { version = "1.0", features = ["derive"]} serde_json = "1.0" # Crates included if required by the API definition diff --git a/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/examples/client/main.rs b/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/examples/client/main.rs index a1d5f19d3d9..289c8b8ed58 100644 --- a/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/examples/client/main.rs +++ b/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/examples/client/main.rs @@ -1,16 +1,5 @@ #![allow(missing_docs, unused_variables, trivial_casts)] -extern crate petstore_with_fake_endpoints_models_for_testing; -extern crate clap; -extern crate env_logger; -extern crate futures; -// log may be unused if there are no examples -#[allow(unused_imports)] -#[macro_use] -extern crate log; -#[macro_use] -extern crate swagger; -extern crate tokio; #[allow(unused_imports)] use futures::{Future, future, Stream, stream}; @@ -55,6 +44,9 @@ use petstore_with_fake_endpoints_models_for_testing::{Api, ApiNoContext, Client, }; use clap::{App, Arg}; +#[allow(unused_imports)] +use log::info; + // swagger::Has may be unused if there are no examples #[allow(unused_imports)] use swagger::{ContextBuilder, EmptyContext, XSpanIdString, Has, Push, AuthData}; @@ -128,8 +120,8 @@ fn main() { .expect("Failed to create HTTP client") }; - let context: make_context_ty!(ContextBuilder, EmptyContext, Option, XSpanIdString) = - make_context!(ContextBuilder, EmptyContext, None as Option, XSpanIdString::default()); + let context: swagger::make_context_ty!(ContextBuilder, EmptyContext, Option, XSpanIdString) = + swagger::make_context!(ContextBuilder, EmptyContext, None as Option, XSpanIdString::default()); let client = client.with_context(context); diff --git a/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/examples/server/main.rs b/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/examples/server/main.rs index 02befef99ba..dd00042a44b 100644 --- a/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/examples/server/main.rs +++ b/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/examples/server/main.rs @@ -2,31 +2,6 @@ #![allow(missing_docs)] -// Imports required by this file. -// extern crate ; -extern crate petstore_with_fake_endpoints_models_for_testing; -extern crate clap; -extern crate env_logger; -extern crate hyper; -#[macro_use] -extern crate log; -extern crate swagger; - -// Imports required by server library. -// extern crate petstore_with_fake_endpoints_models_for_testing; -extern crate chrono; -#[macro_use] -extern crate error_chain; -extern crate futures; -// extern crate swagger; -extern crate tokio; -extern crate uuid; - -#[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] -extern crate openssl; -#[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] -extern crate tokio_openssl; - use clap::{App, Arg}; mod server; diff --git a/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/examples/server/server.rs b/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/examples/server/server.rs index 5e1c482dd36..d80bdcd6d25 100644 --- a/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/examples/server/server.rs +++ b/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/examples/server/server.rs @@ -3,7 +3,7 @@ #![allow(unused_imports)] mod errors { - error_chain!{} + error_chain::error_chain!{} } pub use self::errors::*; @@ -12,6 +12,7 @@ use chrono; use futures::{future, Future, Stream}; use hyper::server::conn::Http; use hyper::service::MakeService as _; +use log::info; use openssl::ssl::SslAcceptorBuilder; use std::marker::PhantomData; use std::net::SocketAddr; diff --git a/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/src/client/mod.rs b/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/src/client/mod.rs index d50fd06e6d6..695d2ffcc25 100644 --- a/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/src/client/mod.rs +++ b/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/src/client/mod.rs @@ -26,10 +26,10 @@ use multipart::client::lazy::Multipart; use uuid; use serde_xml_rs; -use models; -use header; +use crate::models; +use crate::header; -define_encode_set! { +url::define_encode_set! { /// This encode set is used for object IDs /// /// Aside from the special characters defined in the `PATH_SEGMENT_ENCODE_SET`, @@ -37,7 +37,7 @@ define_encode_set! { pub ID_ENCODE_SET = [PATH_SEGMENT_ENCODE_SET] | {'|'} } -use {Api, +use crate::{Api, TestSpecialTagsResponse, Call123exampleResponse, FakeOuterBooleanSerializeResponse, @@ -106,7 +106,7 @@ pub struct Client impl fmt::Debug for Client { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "Client {{ base_path: {} }}", self.base_path) } } @@ -273,7 +273,7 @@ impl From for ClientInitError { } impl fmt::Display for ClientInitError { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let s: &dyn fmt::Debug = self; s.fmt(f) } diff --git a/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/src/context.rs b/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/src/context.rs index 411311326ef..0ea1fbb6ac8 100644 --- a/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/src/context.rs +++ b/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/src/context.rs @@ -9,7 +9,7 @@ use std::marker::PhantomData; use swagger::auth::{AuthData, Authorization, Bearer, Scopes}; use swagger::context::ContextualPayload; use swagger::{EmptyContext, Has, Pop, Push, XSpanIdString}; -use Api; +use crate::Api; pub struct MakeAddContext { inner: T, diff --git a/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/src/lib.rs b/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/src/lib.rs index 387ced1caee..3fecf3101cb 100644 --- a/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/src/lib.rs +++ b/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/src/lib.rs @@ -1,58 +1,5 @@ #![allow(missing_docs, trivial_casts, unused_variables, unused_mut, unused_imports, unused_extern_crates, non_camel_case_types)] -// Crates with macros - -#[macro_use] -extern crate serde_derive; -#[cfg(feature = "server")] -#[macro_use] -extern crate lazy_static; -#[cfg(any(feature = "client", feature = "server"))] -#[macro_use] -extern crate url; -#[macro_use] -extern crate log; - -// Crates for conversion support -#[cfg(feature = "conversion")] -#[macro_use] -extern crate frunk_derives; -#[cfg(feature = "conversion")] -#[macro_use] -extern crate frunk_enum_derive; -#[cfg(feature = "conversion")] -extern crate frunk_core; - -extern crate mime; -extern crate serde; -extern crate futures; -extern crate chrono; -extern crate swagger; -extern crate serde_json; - -#[cfg(any(feature = "client", feature = "server"))] -extern crate hyper; -#[cfg(feature = "server")] -#[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] -extern crate hyper_openssl; -#[cfg(any(feature = "client", feature = "server"))] -extern crate mime_0_2; -#[cfg(feature = "server")] -extern crate percent_encoding; -#[cfg(any(feature = "client", feature = "server"))] -extern crate serde_ignored; - -#[cfg(any(feature = "client", feature = "server"))] -extern crate uuid; - -extern crate serde_xml_rs; - -#[cfg(any(feature = "client", feature = "server"))] -extern crate multipart; - -#[cfg(any(feature = "client", feature = "server"))] -extern crate serde_urlencoded; - use futures::Stream; use std::io::Error; diff --git a/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/src/models.rs b/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/src/models.rs index 06b2d3ea5f1..367187cc5fc 100644 --- a/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/src/models.rs +++ b/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/src/models.rs @@ -1,8 +1,8 @@ #![allow(unused_qualifications)] -use models; +use crate::models; #[cfg(any(feature = "client", feature = "server"))] -use header; +use crate::header; // Methods for converting between header::IntoHeaderValue and hyper::header::HeaderValue @@ -22,8 +22,8 @@ impl From for header::IntoHeaderValue for header::IntoHeaderValue { } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct Animal { #[serde(rename = "className")] pub class_name: String, @@ -245,9 +245,11 @@ impl From for header::IntoHeaderValue { } } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] -pub struct AnimalFarm(Vec); +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] +pub struct AnimalFarm( + Vec +); impl std::convert::From> for AnimalFarm { fn from(x: Vec) -> Self { @@ -359,8 +361,8 @@ impl From for header::IntoHeaderValue { } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct ApiResponse { #[serde(rename = "code")] #[serde(skip_serializing_if="Option::is_none")] @@ -490,8 +492,8 @@ impl From for header::IntoHeaderValue for header::IntoHeaderValue for header::IntoHeaderValue { } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct ArrayTest { #[serde(rename = "array_of_string")] #[serde(skip_serializing_if="Option::is_none")] @@ -830,8 +832,8 @@ impl From for header::IntoHeaderValue for header::IntoHeaderValue { } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct Cat { #[serde(rename = "className")] pub class_name: String, @@ -1132,8 +1134,8 @@ impl From for header::IntoHeaderValue { } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct CatAllOf { #[serde(rename = "declawed")] #[serde(skip_serializing_if="Option::is_none")] @@ -1235,8 +1237,8 @@ impl From for header::IntoHeaderValue { } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] #[serde(rename = "Category")] pub struct Category { #[serde(rename = "id")] @@ -1354,8 +1356,8 @@ impl From for header::IntoHeaderValue { } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct ClassModel { #[serde(rename = "_class")] #[serde(skip_serializing_if="Option::is_none")] @@ -1457,8 +1459,8 @@ impl From for header::IntoHeaderValue { } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct Client { #[serde(rename = "client")] #[serde(skip_serializing_if="Option::is_none")] @@ -1560,8 +1562,8 @@ impl From for header::IntoHeaderValue { } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct Dog { #[serde(rename = "className")] pub class_name: String, @@ -1688,8 +1690,8 @@ impl From for header::IntoHeaderValue { } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct DogAllOf { #[serde(rename = "breed")] #[serde(skip_serializing_if="Option::is_none")] @@ -1791,8 +1793,8 @@ impl From for header::IntoHeaderValue { } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct EnumArrays { // Note: inline enums are not fully supported by openapi-generator #[serde(rename = "just_symbol")] @@ -1909,8 +1911,8 @@ impl EnumArrays { /// which helps with FFI. #[allow(non_camel_case_types)] #[repr(C)] -#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGenericEnum))] +#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk_enum_derive::LabelledGenericEnum))] pub enum EnumClass { #[serde(rename = "_abc")] _ABC, @@ -1921,7 +1923,7 @@ pub enum EnumClass { } impl std::fmt::Display for EnumClass { - fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match *self { EnumClass::_ABC => write!(f, "{}", "_abc"), EnumClass::_EFG => write!(f, "{}", "-efg"), @@ -1969,8 +1971,8 @@ impl From for header::IntoHeaderValue { } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct EnumTest { // Note: inline enums are not fully supported by openapi-generator #[serde(rename = "enum_string")] @@ -2125,8 +2127,8 @@ impl From for header::IntoHeaderValue { } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct FormatTest { #[serde(rename = "integer")] #[serde(skip_serializing_if="Option::is_none")] @@ -2370,8 +2372,8 @@ impl From for header::IntoHeaderValue for header::IntoHeaderValue { } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct List { #[serde(rename = "123-list")] #[serde(skip_serializing_if="Option::is_none")] @@ -2590,8 +2592,8 @@ impl From for header::IntoHeaderValue { } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct MapTest { #[serde(rename = "map_map_of_string")] #[serde(skip_serializing_if="Option::is_none")] @@ -2713,8 +2715,8 @@ impl From for header::IntoHeaderValue for header::IntoHeaderValue for header::IntoHeaderValue { } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] #[serde(rename = "Return")] pub struct ModelReturn { #[serde(rename = "return")] @@ -3058,8 +3060,8 @@ impl From for header::IntoHeaderValue { } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] #[serde(rename = "Name")] pub struct Name { #[serde(rename = "name")] @@ -3201,8 +3203,8 @@ impl From for header::IntoHeaderValue { } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct NumberOnly { #[serde(rename = "JustNumber")] #[serde(skip_serializing_if="Option::is_none")] @@ -3304,8 +3306,8 @@ impl From for header::IntoHeaderValue); impl std::convert::From> for ObjectWithOnlyAdditionalProperties { @@ -3463,8 +3465,8 @@ impl From for header::IntoHeaderValue { } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] #[serde(rename = "Order")] pub struct Order { #[serde(rename = "id")] @@ -3618,8 +3620,8 @@ impl Order { } } -#[derive(Debug, Clone, PartialEq, PartialOrd, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, PartialOrd, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct OuterBoolean(bool); impl std::convert::From for OuterBoolean { @@ -3675,8 +3677,8 @@ impl From for header::IntoHeaderValue std::fmt::Result { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match *self { OuterEnum::PLACED => write!(f, "{}", "placed"), OuterEnum::APPROVED => write!(f, "{}", "approved"), @@ -3837,8 +3839,8 @@ impl OuterEnum { } } -#[derive(Debug, Clone, PartialEq, PartialOrd, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, PartialOrd, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct OuterNumber(f64); impl std::convert::From for OuterNumber { @@ -3877,8 +3879,8 @@ impl OuterNumber { } } -#[derive(Debug, Clone, PartialEq, PartialOrd, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, PartialOrd, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct OuterString(String); impl std::convert::From for OuterString { @@ -3946,8 +3948,8 @@ impl From for header::IntoHeaderValue { } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] #[serde(rename = "Pet")] pub struct Pet { #[serde(rename = "id")] @@ -4108,8 +4110,8 @@ impl From for header::IntoHeaderValue } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct ReadOnlyFirst { #[serde(rename = "bar")] #[serde(skip_serializing_if="Option::is_none")] @@ -4225,8 +4227,8 @@ impl From for header::IntoHeaderValue for header::IntoHeaderValue { } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] #[serde(rename = "Tag")] pub struct Tag { #[serde(rename = "id")] @@ -4447,8 +4449,8 @@ impl From for header::IntoHeaderValue { } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] #[serde(rename = "User")] pub struct User { #[serde(rename = "id")] diff --git a/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/src/server/mod.rs b/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/src/server/mod.rs index c86f51b4c81..55db75689e8 100644 --- a/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/src/server/mod.rs +++ b/samples/server/petstore/rust-server/output/petstore-with-fake-endpoints-models-for-testing/src/server/mod.rs @@ -3,9 +3,10 @@ use futures::{Future, future, Stream, stream}; use hyper; use hyper::{Request, Response, Error, StatusCode, Body, HeaderMap}; use hyper::header::{HeaderName, HeaderValue, CONTENT_TYPE}; -use url::form_urlencoded; +use log::warn; use serde_json; use std::io; +use url::form_urlencoded; #[allow(unused_imports)] use swagger; use swagger::{ApiError, XSpanIdString, Has, RequestParser}; @@ -18,12 +19,12 @@ use multipart::server::save::SaveResult; use serde_xml_rs; #[allow(unused_imports)] -use models; -use header; +use crate::models; +use crate::header; pub use crate::context; -use {Api, +use crate::{Api, TestSpecialTagsResponse, Call123exampleResponse, FakeOuterBooleanSerializeResponse, @@ -62,7 +63,7 @@ use {Api, }; mod paths { - extern crate regex; + use lazy_static::lazy_static; lazy_static! { pub static ref GLOBAL_REGEX_SET: regex::RegexSet = regex::RegexSet::new(vec![ @@ -96,53 +97,53 @@ mod paths { ]) .expect("Unable to create global regex set"); } - pub static ID_ANOTHER_FAKE_DUMMY: usize = 0; - pub static ID_FAKE: usize = 1; - pub static ID_FAKE_BODY_WITH_QUERY_PARAMS: usize = 2; - pub static ID_FAKE_HYPHENPARAM_HYPHEN_PARAM: usize = 3; + pub(crate) static ID_ANOTHER_FAKE_DUMMY: usize = 0; + pub(crate) static ID_FAKE: usize = 1; + pub(crate) static ID_FAKE_BODY_WITH_QUERY_PARAMS: usize = 2; + pub(crate) static ID_FAKE_HYPHENPARAM_HYPHEN_PARAM: usize = 3; lazy_static! { pub static ref REGEX_FAKE_HYPHENPARAM_HYPHEN_PARAM: regex::Regex = regex::Regex::new(r"^/v2/fake/hyphenParam/(?P[^/?#]*)$") .expect("Unable to create regex for FAKE_HYPHENPARAM_HYPHEN_PARAM"); } - pub static ID_FAKE_INLINE_ADDITIONALPROPERTIES: usize = 4; - pub static ID_FAKE_JSONFORMDATA: usize = 5; - pub static ID_FAKE_OPERATION_WITH_NUMERIC_ID: usize = 6; - pub static ID_FAKE_OUTER_BOOLEAN: usize = 7; - pub static ID_FAKE_OUTER_COMPOSITE: usize = 8; - pub static ID_FAKE_OUTER_NUMBER: usize = 9; - pub static ID_FAKE_OUTER_STRING: usize = 10; - pub static ID_FAKE_RESPONSE_WITH_NUMERICAL_DESCRIPTION: usize = 11; - pub static ID_FAKE_CLASSNAME_TEST: usize = 12; - pub static ID_PET: usize = 13; - pub static ID_PET_FINDBYSTATUS: usize = 14; - pub static ID_PET_FINDBYTAGS: usize = 15; - pub static ID_PET_PETID: usize = 16; + pub(crate) static ID_FAKE_INLINE_ADDITIONALPROPERTIES: usize = 4; + pub(crate) static ID_FAKE_JSONFORMDATA: usize = 5; + pub(crate) static ID_FAKE_OPERATION_WITH_NUMERIC_ID: usize = 6; + pub(crate) static ID_FAKE_OUTER_BOOLEAN: usize = 7; + pub(crate) static ID_FAKE_OUTER_COMPOSITE: usize = 8; + pub(crate) static ID_FAKE_OUTER_NUMBER: usize = 9; + pub(crate) static ID_FAKE_OUTER_STRING: usize = 10; + pub(crate) static ID_FAKE_RESPONSE_WITH_NUMERICAL_DESCRIPTION: usize = 11; + pub(crate) static ID_FAKE_CLASSNAME_TEST: usize = 12; + pub(crate) static ID_PET: usize = 13; + pub(crate) static ID_PET_FINDBYSTATUS: usize = 14; + pub(crate) static ID_PET_FINDBYTAGS: usize = 15; + pub(crate) static ID_PET_PETID: usize = 16; lazy_static! { pub static ref REGEX_PET_PETID: regex::Regex = regex::Regex::new(r"^/v2/pet/(?P[^/?#]*)$") .expect("Unable to create regex for PET_PETID"); } - pub static ID_PET_PETID_UPLOADIMAGE: usize = 17; + pub(crate) static ID_PET_PETID_UPLOADIMAGE: usize = 17; lazy_static! { pub static ref REGEX_PET_PETID_UPLOADIMAGE: regex::Regex = regex::Regex::new(r"^/v2/pet/(?P[^/?#]*)/uploadImage$") .expect("Unable to create regex for PET_PETID_UPLOADIMAGE"); } - pub static ID_STORE_INVENTORY: usize = 18; - pub static ID_STORE_ORDER: usize = 19; - pub static ID_STORE_ORDER_ORDER_ID: usize = 20; + pub(crate) static ID_STORE_INVENTORY: usize = 18; + pub(crate) static ID_STORE_ORDER: usize = 19; + pub(crate) static ID_STORE_ORDER_ORDER_ID: usize = 20; lazy_static! { pub static ref REGEX_STORE_ORDER_ORDER_ID: regex::Regex = regex::Regex::new(r"^/v2/store/order/(?P[^/?#]*)$") .expect("Unable to create regex for STORE_ORDER_ORDER_ID"); } - pub static ID_USER: usize = 21; - pub static ID_USER_CREATEWITHARRAY: usize = 22; - pub static ID_USER_CREATEWITHLIST: usize = 23; - pub static ID_USER_LOGIN: usize = 24; - pub static ID_USER_LOGOUT: usize = 25; - pub static ID_USER_USERNAME: usize = 26; + pub(crate) static ID_USER: usize = 21; + pub(crate) static ID_USER_CREATEWITHARRAY: usize = 22; + pub(crate) static ID_USER_CREATEWITHLIST: usize = 23; + pub(crate) static ID_USER_LOGIN: usize = 24; + pub(crate) static ID_USER_LOGOUT: usize = 25; + pub(crate) static ID_USER_USERNAME: usize = 26; lazy_static! { pub static ref REGEX_USER_USERNAME: regex::Regex = regex::Regex::new(r"^/v2/user/(?P[^/?#]*)$") diff --git a/samples/server/petstore/rust-server/output/rust-server-test/Cargo.toml b/samples/server/petstore/rust-server/output/rust-server-test/Cargo.toml index 0d69ff0ff75..8479e643bd6 100644 --- a/samples/server/petstore/rust-server/output/rust-server-test/Cargo.toml +++ b/samples/server/petstore/rust-server/output/rust-server-test/Cargo.toml @@ -4,6 +4,7 @@ version = "2.3.4" authors = [] description = "This spec is for testing rust-server-specific things" license = "Unlicense" +edition = "2018" [features] default = ["client", "server"] @@ -27,11 +28,10 @@ openssl = {version = "0.10", optional = true } chrono = { version = "0.4", features = ["serde"] } futures = "0.1" swagger = "4.0" -log = "0.3.0" +log = "0.4.0" mime = "0.3" -serde = "1.0" -serde_derive = "1.0" +serde = { version = "1.0", features = ["derive"]} serde_json = "1.0" # Crates included if required by the API definition diff --git a/samples/server/petstore/rust-server/output/rust-server-test/examples/client/main.rs b/samples/server/petstore/rust-server/output/rust-server-test/examples/client/main.rs index 4691af4982d..1584d433fe7 100644 --- a/samples/server/petstore/rust-server/output/rust-server-test/examples/client/main.rs +++ b/samples/server/petstore/rust-server/output/rust-server-test/examples/client/main.rs @@ -1,16 +1,5 @@ #![allow(missing_docs, unused_variables, trivial_casts)] -extern crate rust_server_test; -extern crate clap; -extern crate env_logger; -extern crate futures; -// log may be unused if there are no examples -#[allow(unused_imports)] -#[macro_use] -extern crate log; -#[macro_use] -extern crate swagger; -extern crate tokio; #[allow(unused_imports)] use futures::{Future, future, Stream, stream}; @@ -29,6 +18,9 @@ use rust_server_test::{Api, ApiNoContext, Client, ContextWrapperExt, models, }; use clap::{App, Arg}; +#[allow(unused_imports)] +use log::info; + // swagger::Has may be unused if there are no examples #[allow(unused_imports)] use swagger::{ContextBuilder, EmptyContext, XSpanIdString, Has, Push, AuthData}; @@ -84,8 +76,8 @@ fn main() { .expect("Failed to create HTTP client") }; - let context: make_context_ty!(ContextBuilder, EmptyContext, Option, XSpanIdString) = - make_context!(ContextBuilder, EmptyContext, None as Option, XSpanIdString::default()); + let context: swagger::make_context_ty!(ContextBuilder, EmptyContext, Option, XSpanIdString) = + swagger::make_context!(ContextBuilder, EmptyContext, None as Option, XSpanIdString::default()); let client = client.with_context(context); diff --git a/samples/server/petstore/rust-server/output/rust-server-test/examples/server/main.rs b/samples/server/petstore/rust-server/output/rust-server-test/examples/server/main.rs index 04002ac4499..cdf588968aa 100644 --- a/samples/server/petstore/rust-server/output/rust-server-test/examples/server/main.rs +++ b/samples/server/petstore/rust-server/output/rust-server-test/examples/server/main.rs @@ -2,30 +2,6 @@ #![allow(missing_docs)] -// Imports required by this file. -// extern crate ; -extern crate rust_server_test; -extern crate clap; -extern crate env_logger; -extern crate hyper; -#[macro_use] -extern crate log; -extern crate swagger; - -// Imports required by server library. -// extern crate rust_server_test; -extern crate chrono; -#[macro_use] -extern crate error_chain; -extern crate futures; -// extern crate swagger; -extern crate tokio; - -#[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] -extern crate openssl; -#[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] -extern crate tokio_openssl; - use clap::{App, Arg}; mod server; diff --git a/samples/server/petstore/rust-server/output/rust-server-test/examples/server/server.rs b/samples/server/petstore/rust-server/output/rust-server-test/examples/server/server.rs index f6da3fd82cc..5fa44541184 100644 --- a/samples/server/petstore/rust-server/output/rust-server-test/examples/server/server.rs +++ b/samples/server/petstore/rust-server/output/rust-server-test/examples/server/server.rs @@ -3,7 +3,7 @@ #![allow(unused_imports)] mod errors { - error_chain!{} + error_chain::error_chain!{} } pub use self::errors::*; @@ -12,6 +12,7 @@ use chrono; use futures::{future, Future, Stream}; use hyper::server::conn::Http; use hyper::service::MakeService as _; +use log::info; use openssl::ssl::SslAcceptorBuilder; use std::marker::PhantomData; use std::net::SocketAddr; diff --git a/samples/server/petstore/rust-server/output/rust-server-test/src/client/mod.rs b/samples/server/petstore/rust-server/output/rust-server-test/src/client/mod.rs index 4aa77d09e2d..6deeda61b03 100644 --- a/samples/server/petstore/rust-server/output/rust-server-test/src/client/mod.rs +++ b/samples/server/petstore/rust-server/output/rust-server-test/src/client/mod.rs @@ -21,10 +21,10 @@ use swagger::{ApiError, Connector, client::Service, XSpanIdString, Has, AuthData use url::form_urlencoded; use url::percent_encoding::{utf8_percent_encode, PATH_SEGMENT_ENCODE_SET, QUERY_ENCODE_SET}; -use models; -use header; +use crate::models; +use crate::header; -define_encode_set! { +url::define_encode_set! { /// This encode set is used for object IDs /// /// Aside from the special characters defined in the `PATH_SEGMENT_ENCODE_SET`, @@ -32,7 +32,7 @@ define_encode_set! { pub ID_ENCODE_SET = [PATH_SEGMENT_ENCODE_SET] | {'|'} } -use {Api, +use crate::{Api, AllOfGetResponse, DummyGetResponse, DummyPutResponse, @@ -75,7 +75,7 @@ pub struct Client impl fmt::Debug for Client { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "Client {{ base_path: {} }}", self.base_path) } } @@ -242,7 +242,7 @@ impl From for ClientInitError { } impl fmt::Display for ClientInitError { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let s: &dyn fmt::Debug = self; s.fmt(f) } diff --git a/samples/server/petstore/rust-server/output/rust-server-test/src/context.rs b/samples/server/petstore/rust-server/output/rust-server-test/src/context.rs index d17a78ef276..d14e73f822d 100644 --- a/samples/server/petstore/rust-server/output/rust-server-test/src/context.rs +++ b/samples/server/petstore/rust-server/output/rust-server-test/src/context.rs @@ -9,7 +9,7 @@ use std::marker::PhantomData; use swagger::auth::{AuthData, Authorization, Bearer, Scopes}; use swagger::context::ContextualPayload; use swagger::{EmptyContext, Has, Pop, Push, XSpanIdString}; -use Api; +use crate::Api; pub struct MakeAddContext { inner: T, diff --git a/samples/server/petstore/rust-server/output/rust-server-test/src/lib.rs b/samples/server/petstore/rust-server/output/rust-server-test/src/lib.rs index d57280f1e97..b8553112ae5 100644 --- a/samples/server/petstore/rust-server/output/rust-server-test/src/lib.rs +++ b/samples/server/petstore/rust-server/output/rust-server-test/src/lib.rs @@ -1,54 +1,5 @@ #![allow(missing_docs, trivial_casts, unused_variables, unused_mut, unused_imports, unused_extern_crates, non_camel_case_types)] -// Crates with macros - -#[macro_use] -extern crate serde_derive; -#[cfg(feature = "server")] -#[macro_use] -extern crate lazy_static; -#[cfg(any(feature = "client", feature = "server"))] -#[macro_use] -extern crate url; -#[macro_use] -extern crate log; - -// Crates for conversion support -#[cfg(feature = "conversion")] -#[macro_use] -extern crate frunk_derives; -#[cfg(feature = "conversion")] -#[macro_use] -extern crate frunk_enum_derive; -#[cfg(feature = "conversion")] -extern crate frunk_core; - -extern crate mime; -extern crate serde; -extern crate futures; -extern crate chrono; -extern crate swagger; -extern crate serde_json; - -#[cfg(any(feature = "client", feature = "server"))] -extern crate hyper; -#[cfg(feature = "server")] -#[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] -extern crate hyper_openssl; -#[cfg(feature = "server")] -extern crate percent_encoding; -#[cfg(any(feature = "client", feature = "server"))] -extern crate serde_ignored; - -#[cfg(any(feature = "client", feature = "server"))] - - - - - -#[cfg(any(feature = "client", feature = "server"))] - - use futures::Stream; use std::io::Error; diff --git a/samples/server/petstore/rust-server/output/rust-server-test/src/models.rs b/samples/server/petstore/rust-server/output/rust-server-test/src/models.rs index 2ba8cc85354..58f1a505352 100644 --- a/samples/server/petstore/rust-server/output/rust-server-test/src/models.rs +++ b/samples/server/petstore/rust-server/output/rust-server-test/src/models.rs @@ -1,8 +1,8 @@ #![allow(unused_qualifications)] -use models; +use crate::models; #[cfg(any(feature = "client", feature = "server"))] -use header; +use crate::header; // Methods for converting between header::IntoHeaderValue and hyper::header::HeaderValue @@ -22,8 +22,8 @@ impl From for header::IntoHeaderValue); impl std::convert::From> for AdditionalPropertiesObject { @@ -183,8 +183,8 @@ impl From for header::IntoHeaderValue { } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct AllOfObject { #[serde(rename = "sampleProperty")] #[serde(skip_serializing_if="Option::is_none")] @@ -292,8 +292,8 @@ impl From for header::IntoHeaderValue { } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct BaseAllOf { #[serde(rename = "sampleBasePropery")] #[serde(skip_serializing_if="Option::is_none")] @@ -388,8 +388,8 @@ impl From for header::IntoHeaderValue for header::IntoHeaderValue } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[cfg_attr(feature = "conversion", derive(LabelledGeneric))] +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct InlineObject { #[serde(rename = "id")] pub id: String, @@ -591,8 +591,8 @@ impl From for header::IntoHeaderValue for header::IntoHeaderValue {