From 2ad917cd102f288126929186b3b3254da8ba66d0 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Fri, 25 Oct 2024 12:07:16 +0200 Subject: [PATCH] views: Remove `badges` arguments from `EncodableCrate` constructors There are either set to `None` or `Some(vec![])` these days, but we might as well initialize them with an empty static array instead and never return `null`. --- src/controllers/krate/metadata.rs | 3 --- src/controllers/krate/publish.rs | 1 - src/controllers/krate/search.rs | 1 - src/controllers/summary.rs | 1 - ...s_io__tests__krate__publish__basics__new_krate.snap | 2 +- ...tests__krate__publish__basics__new_krate_twice.snap | 2 +- ...s__krate__publish__basics__new_krate_twice_alt.snap | 2 +- ...rate__publish__basics__new_krate_weird_version.snap | 2 +- ...__krate__publish__basics__new_krate_with_token.snap | 2 +- ...__version_with_build_metadata@build_metadata_1.snap | 2 +- ...__version_with_build_metadata@build_metadata_2.snap | 2 +- ...__version_with_build_metadata@build_metadata_3.snap | 2 +- ...s__krate__publish__categories__good_categories.snap | 2 +- ...sts__krate__publish__dependencies__dep_limit-2.snap | 2 +- ...tests__krate__publish__keywords__good_keywords.snap | 2 +- ..._krate__publish__links__crate_with_links_field.snap | 2 +- ...ests__krate__publish__manifest__boolean_readme.snap | 2 +- ...s__krate__publish__manifest__lib_and_bin_crate.snap | 2 +- ...between_default_axum_limit_and_max_upload_size.snap | 2 +- ...__publish__readme__new_krate_with_empty_readme.snap | 2 +- ..._krate__publish__readme__new_krate_with_readme.snap | 2 +- ...readme__new_krate_with_readme_and_plus_version.snap | 2 +- ...ates_io__tests__routes__crates__read__new_name.snap | 2 +- ..._io__tests__routes__crates__read__show_minimal.snap | 2 +- src/views.rs | 10 +++------- 25 files changed, 23 insertions(+), 33 deletions(-) diff --git a/src/controllers/krate/metadata.rs b/src/controllers/krate/metadata.rs index 1028ada0a7f..0c05a171624 100644 --- a/src/controllers/krate/metadata.rs +++ b/src/controllers/krate/metadata.rs @@ -117,8 +117,6 @@ pub async fn show(app: AppState, Path(name): Path, req: Parts) -> AppRes None }; - let badges = if include.badges { Some(vec![]) } else { None }; - let top_versions = if include.versions { Some(krate.top_versions(conn)?) } else { @@ -132,7 +130,6 @@ pub async fn show(app: AppState, Path(name): Path, req: Parts) -> AppRes ids, kws.as_deref(), cats.as_deref(), - badges, false, downloads, recent_downloads, diff --git a/src/controllers/krate/publish.rs b/src/controllers/krate/publish.rs index 5ddd1648c51..6160f380357 100644 --- a/src/controllers/krate/publish.rs +++ b/src/controllers/krate/publish.rs @@ -512,7 +512,6 @@ pub async fn publish(app: AppState, req: BytesRequest) -> AppResult AppResult> { krate, default_version.as_deref(), Some(&max_version), - Some(vec![]), perfect_match, total, Some(recent.unwrap_or(0)), diff --git a/src/controllers/summary.rs b/src/controllers/summary.rs index 1b89de04443..fdfc123beec 100644 --- a/src/controllers/summary.rs +++ b/src/controllers/summary.rs @@ -41,7 +41,6 @@ pub async fn summary(state: AppState) -> AppResult> { krate, default_version.as_deref(), Some(&top_versions), - None, false, total, recent, diff --git a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__basics__new_krate.snap b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__basics__new_krate.snap index 258a759e078..8a2728831a7 100644 --- a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__basics__new_krate.snap +++ b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__basics__new_krate.snap @@ -4,7 +4,7 @@ expression: response.json() --- { "crate": { - "badges": null, + "badges": [], "categories": null, "created_at": "[datetime]", "default_version": "1.0.0", diff --git a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__basics__new_krate_twice.snap b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__basics__new_krate_twice.snap index 85c6b2dec86..539a9235f63 100644 --- a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__basics__new_krate_twice.snap +++ b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__basics__new_krate_twice.snap @@ -4,7 +4,7 @@ expression: response.json() --- { "crate": { - "badges": null, + "badges": [], "categories": null, "created_at": "[datetime]", "default_version": "2.0.0", diff --git a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__basics__new_krate_twice_alt.snap b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__basics__new_krate_twice_alt.snap index 6ad4d1383b7..4efbcae82d2 100644 --- a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__basics__new_krate_twice_alt.snap +++ b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__basics__new_krate_twice_alt.snap @@ -4,7 +4,7 @@ expression: response.json() --- { "crate": { - "badges": null, + "badges": [], "categories": null, "created_at": "[datetime]", "default_version": "2.0.0", diff --git a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__basics__new_krate_weird_version.snap b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__basics__new_krate_weird_version.snap index 2b264629654..1dd7f0c7ae7 100644 --- a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__basics__new_krate_weird_version.snap +++ b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__basics__new_krate_weird_version.snap @@ -4,7 +4,7 @@ expression: response.json() --- { "crate": { - "badges": null, + "badges": [], "categories": null, "created_at": "[datetime]", "default_version": "0.0.0-pre", diff --git a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__basics__new_krate_with_token.snap b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__basics__new_krate_with_token.snap index 258a759e078..8a2728831a7 100644 --- a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__basics__new_krate_with_token.snap +++ b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__basics__new_krate_with_token.snap @@ -4,7 +4,7 @@ expression: response.json() --- { "crate": { - "badges": null, + "badges": [], "categories": null, "created_at": "[datetime]", "default_version": "1.0.0", diff --git a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__build_metadata__version_with_build_metadata@build_metadata_1.snap b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__build_metadata__version_with_build_metadata@build_metadata_1.snap index a7b77bc9132..8a41e2c13ad 100644 --- a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__build_metadata__version_with_build_metadata@build_metadata_1.snap +++ b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__build_metadata__version_with_build_metadata@build_metadata_1.snap @@ -4,7 +4,7 @@ expression: response.json() --- { "crate": { - "badges": null, + "badges": [], "categories": null, "created_at": "[datetime]", "default_version": "1.0.0+foo", diff --git a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__build_metadata__version_with_build_metadata@build_metadata_2.snap b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__build_metadata__version_with_build_metadata@build_metadata_2.snap index e1f072e1da3..e3ef191b968 100644 --- a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__build_metadata__version_with_build_metadata@build_metadata_2.snap +++ b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__build_metadata__version_with_build_metadata@build_metadata_2.snap @@ -4,7 +4,7 @@ expression: response.json() --- { "crate": { - "badges": null, + "badges": [], "categories": null, "created_at": "[datetime]", "default_version": "1.0.0-beta.1", diff --git a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__build_metadata__version_with_build_metadata@build_metadata_3.snap b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__build_metadata__version_with_build_metadata@build_metadata_3.snap index a7b77bc9132..8a41e2c13ad 100644 --- a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__build_metadata__version_with_build_metadata@build_metadata_3.snap +++ b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__build_metadata__version_with_build_metadata@build_metadata_3.snap @@ -4,7 +4,7 @@ expression: response.json() --- { "crate": { - "badges": null, + "badges": [], "categories": null, "created_at": "[datetime]", "default_version": "1.0.0+foo", diff --git a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__categories__good_categories.snap b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__categories__good_categories.snap index c02dd2d47b1..919e8e77214 100644 --- a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__categories__good_categories.snap +++ b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__categories__good_categories.snap @@ -4,7 +4,7 @@ expression: response.json() --- { "crate": { - "badges": null, + "badges": [], "categories": null, "created_at": "[datetime]", "default_version": "1.0.0", diff --git a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__dependencies__dep_limit-2.snap b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__dependencies__dep_limit-2.snap index 57da71a5e83..0507b672bb2 100644 --- a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__dependencies__dep_limit-2.snap +++ b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__dependencies__dep_limit-2.snap @@ -4,7 +4,7 @@ expression: response.json() --- { "crate": { - "badges": null, + "badges": [], "categories": null, "created_at": "[datetime]", "default_version": "1.0.0", diff --git a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__keywords__good_keywords.snap b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__keywords__good_keywords.snap index 5c27457424f..02ffe7a26cc 100644 --- a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__keywords__good_keywords.snap +++ b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__keywords__good_keywords.snap @@ -4,7 +4,7 @@ expression: response.json() --- { "crate": { - "badges": null, + "badges": [], "categories": null, "created_at": "[datetime]", "default_version": "1.0.0", diff --git a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__links__crate_with_links_field.snap b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__links__crate_with_links_field.snap index 4fb4f9216f9..15df7dcd3df 100644 --- a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__links__crate_with_links_field.snap +++ b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__links__crate_with_links_field.snap @@ -4,7 +4,7 @@ expression: response.json() --- { "crate": { - "badges": null, + "badges": [], "categories": null, "created_at": "[datetime]", "default_version": "1.0.0", diff --git a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__manifest__boolean_readme.snap b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__manifest__boolean_readme.snap index ef0b92bf8d4..85929f9f71f 100644 --- a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__manifest__boolean_readme.snap +++ b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__manifest__boolean_readme.snap @@ -4,7 +4,7 @@ expression: response.json() --- { "crate": { - "badges": null, + "badges": [], "categories": null, "created_at": "[datetime]", "default_version": "1.0.0", diff --git a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__manifest__lib_and_bin_crate.snap b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__manifest__lib_and_bin_crate.snap index ef0b92bf8d4..85929f9f71f 100644 --- a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__manifest__lib_and_bin_crate.snap +++ b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__manifest__lib_and_bin_crate.snap @@ -4,7 +4,7 @@ expression: response.json() --- { "crate": { - "badges": null, + "badges": [], "categories": null, "created_at": "[datetime]", "default_version": "1.0.0", diff --git a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__max_size__tarball_between_default_axum_limit_and_max_upload_size.snap b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__max_size__tarball_between_default_axum_limit_and_max_upload_size.snap index 6c68ee608bd..3550376f1b2 100644 --- a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__max_size__tarball_between_default_axum_limit_and_max_upload_size.snap +++ b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__max_size__tarball_between_default_axum_limit_and_max_upload_size.snap @@ -4,7 +4,7 @@ expression: response.json() --- { "crate": { - "badges": null, + "badges": [], "categories": null, "created_at": "[datetime]", "default_version": "1.1.0", diff --git a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__readme__new_krate_with_empty_readme.snap b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__readme__new_krate_with_empty_readme.snap index 89576e0249d..75a0cafd1fd 100644 --- a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__readme__new_krate_with_empty_readme.snap +++ b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__readme__new_krate_with_empty_readme.snap @@ -4,7 +4,7 @@ expression: response.json() --- { "crate": { - "badges": null, + "badges": [], "categories": null, "created_at": "[datetime]", "default_version": "1.0.0", diff --git a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__readme__new_krate_with_readme.snap b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__readme__new_krate_with_readme.snap index 89576e0249d..75a0cafd1fd 100644 --- a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__readme__new_krate_with_readme.snap +++ b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__readme__new_krate_with_readme.snap @@ -4,7 +4,7 @@ expression: response.json() --- { "crate": { - "badges": null, + "badges": [], "categories": null, "created_at": "[datetime]", "default_version": "1.0.0", diff --git a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__readme__new_krate_with_readme_and_plus_version.snap b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__readme__new_krate_with_readme_and_plus_version.snap index 727bd448fa1..22520ca53a2 100644 --- a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__readme__new_krate_with_readme_and_plus_version.snap +++ b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__readme__new_krate_with_readme_and_plus_version.snap @@ -4,7 +4,7 @@ expression: response.json() --- { "crate": { - "badges": null, + "badges": [], "categories": null, "created_at": "[datetime]", "default_version": "1.0.0+foo", diff --git a/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__read__new_name.snap b/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__read__new_name.snap index 8707fb5d777..1c4bf7042f4 100644 --- a/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__read__new_name.snap +++ b/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__read__new_name.snap @@ -5,7 +5,7 @@ expression: response.json() { "categories": null, "crate": { - "badges": null, + "badges": [], "categories": null, "created_at": "[datetime]", "default_version": "0.99.0", diff --git a/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__read__show_minimal.snap b/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__read__show_minimal.snap index 3812e18f9a8..1a46596f22b 100644 --- a/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__read__show_minimal.snap +++ b/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__read__show_minimal.snap @@ -5,7 +5,7 @@ expression: response.json() { "categories": null, "crate": { - "badges": null, + "badges": [], "categories": null, "created_at": "[datetime]", "default_version": "1.0.0", diff --git a/src/views.rs b/src/views.rs index 42821f21647..1e4631ef71b 100644 --- a/src/views.rs +++ b/src/views.rs @@ -202,7 +202,7 @@ pub struct EncodableCrate { pub versions: Option>, pub keywords: Option>, pub categories: Option>, - pub badges: Option>, + pub badges: [(); 0], #[serde(with = "rfc3339")] pub created_at: NaiveDateTime, // NOTE: Used by shields.io, altering `downloads` requires a PR with shields.io @@ -230,7 +230,6 @@ impl EncodableCrate { versions: Option>, keywords: Option<&[Keyword]>, categories: Option<&[Category]>, - badges: Option>, exact_match: bool, downloads: i64, recent_downloads: Option, @@ -251,7 +250,6 @@ impl EncodableCrate { }; let keyword_ids = keywords.map(|kws| kws.iter().map(|kw| kw.keyword.clone()).collect()); let category_ids = categories.map(|cats| cats.iter().map(|cat| cat.slug.clone()).collect()); - let badges = badges.map(|_| vec![]); let homepage = remove_blocked_urls(homepage); let documentation = remove_blocked_urls(documentation); let repository = remove_blocked_urls(repository); @@ -296,7 +294,7 @@ impl EncodableCrate { versions, keywords: keyword_ids, categories: category_ids, - badges, + badges: [], default_version, max_version, newest_version, @@ -321,7 +319,6 @@ impl EncodableCrate { krate: Crate, default_version: Option<&str>, top_versions: Option<&TopVersions>, - badges: Option>, exact_match: bool, downloads: i64, recent_downloads: Option, @@ -333,7 +330,6 @@ impl EncodableCrate { None, None, None, - badges, exact_match, downloads, recent_downloads, @@ -804,7 +800,7 @@ mod tests { versions: None, keywords: None, categories: None, - badges: None, + badges: [], created_at: NaiveDate::from_ymd_opt(2017, 1, 6) .unwrap() .and_hms_opt(14, 23, 12)