From 403bade3095cf4be11c19542eda0e89b4b446a69 Mon Sep 17 00:00:00 2001 From: Sylvain Wallez Date: Mon, 31 Aug 2020 10:55:28 +0200 Subject: [PATCH 1/2] Do not generate unneded #[serde(rename)] Avoid generating #[serde(rename)] for fields that have not been renamed. Drive-by changes: - add IntelliJ iml files to .gitignore - comment out rustfmt attributes that aren't stable yet --- .gitignore | 1 + .rustfmt.toml | 4 ++- .../code_gen/request/request_builder.rs | 28 +++++++++++++------ 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 97e7d4ca..b2d991dc 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ Cargo.lock .idea +*.iml .vscode/ *.log yaml_test_runner/yaml/ diff --git a/.rustfmt.toml b/.rustfmt.toml index 2461f065..0b436b10 100644 --- a/.rustfmt.toml +++ b/.rustfmt.toml @@ -1 +1,3 @@ -merge_imports = true \ No newline at end of file +# Available on rustfmt nightly currently so commented out so that we remember to enable it once stable +#merge_imports = true +#normalize_doc_attributes = true diff --git a/api_generator/src/generator/code_gen/request/request_builder.rs b/api_generator/src/generator/code_gen/request/request_builder.rs index 5c1a7851..257c6d92 100644 --- a/api_generator/src/generator/code_gen/request/request_builder.rs +++ b/api_generator/src/generator/code_gen/request/request_builder.rs @@ -125,19 +125,31 @@ impl<'a> RequestBuilder<'a> { let query_struct_ty = ident("QueryParams"); let struct_fields = endpoint_params.iter().map(|(param_name, param_type)| { let field = Self::create_struct_field((param_name, param_type)); - let field_rename = lit(param_name); - // TODO: we special case expand_wildcards here to be a list, but this should be fixed upstream - if param_type.ty == TypeKind::List || param_name == "expand_wildcards" { - let serialize_with = lit("crate::client::serialize_coll_qs"); + + let renamed = field.ident.as_ref().unwrap() != param_name; + let serde_rename = if renamed { + let field_rename = lit(param_name); quote! { - #[serde(rename = #field_rename, serialize_with = #serialize_with)] - #field + #[serde(rename = #field_rename)] } } else { + quote!() + }; + + // TODO: we special case expand_wildcards here to be a list, but this should be fixed upstream + let expand = param_type.ty == TypeKind::List || param_name == "expand_wildcards"; + let serialize_with = if expand { quote! { - #[serde(rename = #field_rename)] - #field + #[serde(serialize_with = "crate::client::serialize_coll_qs")] } + } else { + quote!() + }; + + quote! { + #serde_rename + #serialize_with + #field } }); From 459bd4510f45eeca5d9f384cdd09e79d626b734d Mon Sep 17 00:00:00 2001 From: Sylvain Wallez Date: Mon, 31 Aug 2020 10:57:27 +0200 Subject: [PATCH 2/2] Generated code produced by previous commit --- .../namespace_clients/async_search.rs | 101 +-- .../src/generated/namespace_clients/cat.rs | 488 ++--------- .../src/generated/namespace_clients/ccr.rs | 118 +-- .../generated/namespace_clients/cluster.rs | 150 +--- .../namespace_clients/dangling_indices.rs | 33 +- .../src/generated/namespace_clients/enrich.rs | 46 +- .../src/generated/namespace_clients/graph.rs | 11 +- .../src/generated/namespace_clients/ilm.rs | 92 +- .../generated/namespace_clients/indices.rs | 715 ++------------- .../src/generated/namespace_clients/ingest.rs | 51 +- .../generated/namespace_clients/license.rs | 68 +- .../generated/namespace_clients/migration.rs | 9 +- .../src/generated/namespace_clients/ml.rs | 520 +---------- .../src/generated/namespace_clients/nodes.rs | 72 +- .../generated/namespace_clients/security.rs | 265 +----- .../src/generated/namespace_clients/slm.rs | 81 +- .../generated/namespace_clients/snapshot.rs | 111 +-- .../src/generated/namespace_clients/sql.rs | 28 +- .../src/generated/namespace_clients/ssl.rs | 9 +- .../src/generated/namespace_clients/tasks.rs | 50 +- .../generated/namespace_clients/transform.rs | 87 +- .../generated/namespace_clients/watcher.rs | 98 +-- .../src/generated/namespace_clients/xpack.rs | 25 +- elasticsearch/src/generated/params.rs | 2 +- elasticsearch/src/generated/root.rs | 826 ++---------------- 25 files changed, 464 insertions(+), 3592 deletions(-) diff --git a/elasticsearch/src/generated/namespace_clients/async_search.rs b/elasticsearch/src/generated/namespace_clients/async_search.rs index c429b327..b2004fe3 100644 --- a/elasticsearch/src/generated/namespace_clients/async_search.rs +++ b/elasticsearch/src/generated/namespace_clients/async_search.rs @@ -131,18 +131,11 @@ impl<'a, 'b> AsyncSearchDelete<'a, 'b> { #[serde_with::skip_serializing_none] #[derive(Serialize)] struct QueryParams<'b> { - #[serde(rename = "error_trace")] error_trace: Option, - #[serde( - rename = "filter_path", - serialize_with = "crate::client::serialize_coll_qs" - )] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] filter_path: Option<&'b [&'b str]>, - #[serde(rename = "human")] human: Option, - #[serde(rename = "pretty")] pretty: Option, - #[serde(rename = "source")] source: Option<&'b str>, } let query_params = QueryParams { @@ -277,24 +270,14 @@ impl<'a, 'b> AsyncSearchGet<'a, 'b> { #[serde_with::skip_serializing_none] #[derive(Serialize)] struct QueryParams<'b> { - #[serde(rename = "error_trace")] error_trace: Option, - #[serde( - rename = "filter_path", - serialize_with = "crate::client::serialize_coll_qs" - )] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] filter_path: Option<&'b [&'b str]>, - #[serde(rename = "human")] human: Option, - #[serde(rename = "keep_alive")] keep_alive: Option<&'b str>, - #[serde(rename = "pretty")] pretty: Option, - #[serde(rename = "source")] source: Option<&'b str>, - #[serde(rename = "typed_keys")] typed_keys: Option, - #[serde(rename = "wait_for_completion_timeout")] wait_for_completion_timeout: Option<&'b str>, } let query_params = QueryParams { @@ -768,121 +751,61 @@ where #[serde_with::skip_serializing_none] #[derive(Serialize)] struct QueryParams<'b> { - #[serde( - rename = "_source", - serialize_with = "crate::client::serialize_coll_qs" - )] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] _source: Option<&'b [&'b str]>, - #[serde( - rename = "_source_excludes", - serialize_with = "crate::client::serialize_coll_qs" - )] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] _source_excludes: Option<&'b [&'b str]>, - #[serde( - rename = "_source_includes", - serialize_with = "crate::client::serialize_coll_qs" - )] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] _source_includes: Option<&'b [&'b str]>, - #[serde(rename = "allow_no_indices")] allow_no_indices: Option, - #[serde(rename = "allow_partial_search_results")] allow_partial_search_results: Option, - #[serde(rename = "analyze_wildcard")] analyze_wildcard: Option, - #[serde(rename = "analyzer")] analyzer: Option<&'b str>, - #[serde(rename = "batched_reduce_size")] batched_reduce_size: Option, - #[serde(rename = "default_operator")] default_operator: Option, - #[serde(rename = "df")] df: Option<&'b str>, - #[serde( - rename = "docvalue_fields", - serialize_with = "crate::client::serialize_coll_qs" - )] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] docvalue_fields: Option<&'b [&'b str]>, - #[serde(rename = "error_trace")] error_trace: Option, - #[serde( - rename = "expand_wildcards", - serialize_with = "crate::client::serialize_coll_qs" - )] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] expand_wildcards: Option<&'b [ExpandWildcards]>, - #[serde(rename = "explain")] explain: Option, - #[serde( - rename = "filter_path", - serialize_with = "crate::client::serialize_coll_qs" - )] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] filter_path: Option<&'b [&'b str]>, - #[serde(rename = "from")] from: Option, - #[serde(rename = "human")] human: Option, - #[serde(rename = "ignore_throttled")] ignore_throttled: Option, - #[serde(rename = "ignore_unavailable")] ignore_unavailable: Option, - #[serde(rename = "keep_alive")] keep_alive: Option<&'b str>, - #[serde(rename = "keep_on_completion")] keep_on_completion: Option, - #[serde(rename = "lenient")] lenient: Option, - #[serde(rename = "max_concurrent_shard_requests")] max_concurrent_shard_requests: Option, - #[serde(rename = "preference")] preference: Option<&'b str>, - #[serde(rename = "pretty")] pretty: Option, - #[serde(rename = "q")] q: Option<&'b str>, - #[serde(rename = "request_cache")] request_cache: Option, - #[serde( - rename = "routing", - serialize_with = "crate::client::serialize_coll_qs" - )] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] routing: Option<&'b [&'b str]>, - #[serde(rename = "search_type")] search_type: Option, - #[serde(rename = "seq_no_primary_term")] seq_no_primary_term: Option, - #[serde(rename = "size")] size: Option, - #[serde(rename = "sort", serialize_with = "crate::client::serialize_coll_qs")] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] sort: Option<&'b [&'b str]>, - #[serde(rename = "source")] source: Option<&'b str>, - #[serde(rename = "stats", serialize_with = "crate::client::serialize_coll_qs")] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] stats: Option<&'b [&'b str]>, - #[serde( - rename = "stored_fields", - serialize_with = "crate::client::serialize_coll_qs" - )] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] stored_fields: Option<&'b [&'b str]>, - #[serde(rename = "suggest_field")] suggest_field: Option<&'b str>, - #[serde(rename = "suggest_mode")] suggest_mode: Option, - #[serde(rename = "suggest_size")] suggest_size: Option, - #[serde(rename = "suggest_text")] suggest_text: Option<&'b str>, - #[serde(rename = "terminate_after")] terminate_after: Option, - #[serde(rename = "timeout")] timeout: Option<&'b str>, - #[serde(rename = "track_scores")] track_scores: Option, - #[serde(rename = "track_total_hits")] track_total_hits: Option, - #[serde(rename = "typed_keys")] typed_keys: Option, - #[serde(rename = "version")] version: Option, - #[serde(rename = "wait_for_completion_timeout")] wait_for_completion_timeout: Option<&'b str>, } let query_params = QueryParams { diff --git a/elasticsearch/src/generated/namespace_clients/cat.rs b/elasticsearch/src/generated/namespace_clients/cat.rs index d706dfbe..fc75ffa7 100644 --- a/elasticsearch/src/generated/namespace_clients/cat.rs +++ b/elasticsearch/src/generated/namespace_clients/cat.rs @@ -187,35 +187,21 @@ impl<'a, 'b> CatAliases<'a, 'b> { #[serde_with::skip_serializing_none] #[derive(Serialize)] struct QueryParams<'b> { - #[serde(rename = "error_trace")] error_trace: Option, - #[serde( - rename = "expand_wildcards", - serialize_with = "crate::client::serialize_coll_qs" - )] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] expand_wildcards: Option<&'b [ExpandWildcards]>, - #[serde( - rename = "filter_path", - serialize_with = "crate::client::serialize_coll_qs" - )] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] filter_path: Option<&'b [&'b str]>, - #[serde(rename = "format")] format: Option<&'b str>, - #[serde(rename = "h", serialize_with = "crate::client::serialize_coll_qs")] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] h: Option<&'b [&'b str]>, - #[serde(rename = "help")] help: Option, - #[serde(rename = "human")] human: Option, - #[serde(rename = "local")] local: Option, - #[serde(rename = "pretty")] pretty: Option, - #[serde(rename = "s", serialize_with = "crate::client::serialize_coll_qs")] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] s: Option<&'b [&'b str]>, - #[serde(rename = "source")] source: Option<&'b str>, - #[serde(rename = "v")] v: Option, } let query_params = QueryParams { @@ -399,34 +385,21 @@ impl<'a, 'b> CatAllocation<'a, 'b> { #[serde_with::skip_serializing_none] #[derive(Serialize)] struct QueryParams<'b> { - #[serde(rename = "bytes")] bytes: Option, - #[serde(rename = "error_trace")] error_trace: Option, - #[serde( - rename = "filter_path", - serialize_with = "crate::client::serialize_coll_qs" - )] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] filter_path: Option<&'b [&'b str]>, - #[serde(rename = "format")] format: Option<&'b str>, - #[serde(rename = "h", serialize_with = "crate::client::serialize_coll_qs")] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] h: Option<&'b [&'b str]>, - #[serde(rename = "help")] help: Option, - #[serde(rename = "human")] human: Option, - #[serde(rename = "local")] local: Option, - #[serde(rename = "master_timeout")] master_timeout: Option<&'b str>, - #[serde(rename = "pretty")] pretty: Option, - #[serde(rename = "s", serialize_with = "crate::client::serialize_coll_qs")] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] s: Option<&'b [&'b str]>, - #[serde(rename = "source")] source: Option<&'b str>, - #[serde(rename = "v")] v: Option, } let query_params = QueryParams { @@ -590,28 +563,18 @@ impl<'a, 'b> CatCount<'a, 'b> { #[serde_with::skip_serializing_none] #[derive(Serialize)] struct QueryParams<'b> { - #[serde(rename = "error_trace")] error_trace: Option, - #[serde( - rename = "filter_path", - serialize_with = "crate::client::serialize_coll_qs" - )] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] filter_path: Option<&'b [&'b str]>, - #[serde(rename = "format")] format: Option<&'b str>, - #[serde(rename = "h", serialize_with = "crate::client::serialize_coll_qs")] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] h: Option<&'b [&'b str]>, - #[serde(rename = "help")] help: Option, - #[serde(rename = "human")] human: Option, - #[serde(rename = "pretty")] pretty: Option, - #[serde(rename = "s", serialize_with = "crate::client::serialize_coll_qs")] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] s: Option<&'b [&'b str]>, - #[serde(rename = "source")] source: Option<&'b str>, - #[serde(rename = "v")] v: Option, } let query_params = QueryParams { @@ -786,32 +749,21 @@ impl<'a, 'b> CatFielddata<'a, 'b> { #[serde_with::skip_serializing_none] #[derive(Serialize)] struct QueryParams<'b> { - #[serde(rename = "bytes")] bytes: Option, - #[serde(rename = "error_trace")] error_trace: Option, - #[serde(rename = "fields", serialize_with = "crate::client::serialize_coll_qs")] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] fields: Option<&'b [&'b str]>, - #[serde( - rename = "filter_path", - serialize_with = "crate::client::serialize_coll_qs" - )] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] filter_path: Option<&'b [&'b str]>, - #[serde(rename = "format")] format: Option<&'b str>, - #[serde(rename = "h", serialize_with = "crate::client::serialize_coll_qs")] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] h: Option<&'b [&'b str]>, - #[serde(rename = "help")] help: Option, - #[serde(rename = "human")] human: Option, - #[serde(rename = "pretty")] pretty: Option, - #[serde(rename = "s", serialize_with = "crate::client::serialize_coll_qs")] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] s: Option<&'b [&'b str]>, - #[serde(rename = "source")] source: Option<&'b str>, - #[serde(rename = "v")] v: Option, } let query_params = QueryParams { @@ -977,32 +929,20 @@ impl<'a, 'b> CatHealth<'a, 'b> { #[serde_with::skip_serializing_none] #[derive(Serialize)] struct QueryParams<'b> { - #[serde(rename = "error_trace")] error_trace: Option, - #[serde( - rename = "filter_path", - serialize_with = "crate::client::serialize_coll_qs" - )] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] filter_path: Option<&'b [&'b str]>, - #[serde(rename = "format")] format: Option<&'b str>, - #[serde(rename = "h", serialize_with = "crate::client::serialize_coll_qs")] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] h: Option<&'b [&'b str]>, - #[serde(rename = "help")] help: Option, - #[serde(rename = "human")] human: Option, - #[serde(rename = "pretty")] pretty: Option, - #[serde(rename = "s", serialize_with = "crate::client::serialize_coll_qs")] + #[serde(serialize_with = "crate::client::serialize_coll_qs")] s: Option<&'b [&'b str]>, - #[serde(rename = "source")] source: Option<&'b str>, - #[serde(rename = "time")] time: Option