Skip to content

Replace #[macro_use] with explicit imports #11449

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jun 27, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/app.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ use diesel_async::pooled_connection::AsyncDieselConnectionManager;
use diesel_async::pooled_connection::deadpool::Pool as DeadpoolPool;
use oauth2::basic::BasicClient;
use oauth2::{EndpointNotSet, EndpointSet};
use tracing::{instrument, warn};

type DeadpoolResult = Result<
diesel_async::pooled_connection::deadpool::Object<AsyncPgConnection>,
Expand Down
1 change: 1 addition & 0 deletions src/auth.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ use diesel_async::AsyncPgConnection;
use http::request::Parts;
use http::{StatusCode, header};
use secrecy::{ExposeSecret, SecretString};
use tracing::instrument;

pub struct AuthHeader(SecretString);

Expand Down
1 change: 1 addition & 0 deletions src/cloudfront.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ use aws_sdk_cloudfront::config::retry::RetryConfig;
use aws_sdk_cloudfront::config::{BehaviorVersion, Region};
use aws_sdk_cloudfront::types::{InvalidationBatch, Paths};
use aws_sdk_cloudfront::{Client, Config};
use tracing::{debug, instrument, warn};

pub struct CloudFront {
client: Client,
Expand Down
1 change: 1 addition & 0 deletions src/config/cdn_log_queue.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
use crates_io_env_vars::{required_var, var};
use secrecy::SecretString;
use tracing::warn;

#[derive(Debug, Clone)]
pub enum CdnLogQueueConfig {
Expand Down
1 change: 1 addition & 0 deletions src/config/cdn_log_storage.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ use anyhow::Context;
use crates_io_env_vars::{required_var, var};
use secrecy::SecretString;
use std::path::PathBuf;
use tracing::{info, warn};

#[derive(Debug, Clone)]
pub enum CdnLogStorageConfig {
Expand Down
1 change: 1 addition & 0 deletions src/config/server.rs
Original file line number Diff line number Diff line change
Expand Up @@ -329,6 +329,7 @@ impl FromStr for AllowedOrigins {
#[cfg(test)]
mod tests {
use super::*;
use claims::{assert_err, assert_none, assert_ok_eq};

#[test]
fn parse_traffic_patterns_splits_on_comma_and_looks_for_equal_sign() {
Expand Down
3 changes: 2 additions & 1 deletion src/controllers/category.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@ use crate::util::errors::AppResult;
use crate::views::EncodableCategory;
use axum::Json;
use axum::extract::{FromRequestParts, Path, Query};
use diesel::QueryDsl;
use diesel::prelude::*;
use diesel_async::RunQueryDsl;
use futures_util::FutureExt;
use http::request::Parts;
use serde::{Deserialize, Serialize};

#[derive(Debug, Deserialize, FromRequestParts, utoipa::IntoParams)]
#[from_request(via(Query))]
Expand Down
1 change: 1 addition & 0 deletions src/controllers/crate_owner_invitation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ use diesel_async::{AsyncPgConnection, RunQueryDsl};
use http::StatusCode;
use http::request::Parts;
use indexmap::IndexMap;
use serde::{Deserialize, Serialize};
use std::collections::{HashMap, HashSet};

#[derive(Serialize, utoipa::ToSchema)]
Expand Down
3 changes: 2 additions & 1 deletion src/controllers/github/secret_scanning.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,14 @@ use minijinja::context;
use p256::PublicKey;
use p256::ecdsa::VerifyingKey;
use p256::ecdsa::signature::Verifier;
use serde::{Deserialize, Serialize};
use serde_json as json;
use std::collections::{BTreeMap, BTreeSet, HashMap};
use std::str::FromStr;
use std::sync::LazyLock;
use std::time::Duration;
use tokio::sync::Mutex;
use tracing::warn;
use tracing::{debug, warn};

// Minimum number of seconds to wait before refreshing cache of GitHub's public keys
const PUBLIC_KEY_CACHE_LIFETIME: Duration = Duration::from_secs(60 * 60 * 24); // 24 hours
Expand Down
1 change: 1 addition & 0 deletions src/controllers/helpers.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
use axum::Json;
use axum::response::{IntoResponse, Response};
use serde::Serialize;

pub mod authorization;
pub(crate) mod pagination;
Expand Down
7 changes: 4 additions & 3 deletions src/controllers/helpers/pagination.rs
Original file line number Diff line number Diff line change
Expand Up @@ -449,13 +449,13 @@ macro_rules! seek {
$($(#[$field_meta:meta])? $field:ident: $ty:ty),* $(,)?
}) => {
paste::item! {
#[derive(Debug, Default, Deserialize, PartialEq)]
#[derive(Debug, Default, serde::Deserialize, PartialEq)]
#[serde(from = $variant "Helper")]
$vis struct $variant {
$($(#[$field_meta])? pub(super) $field: $ty),*
}

#[derive(Debug, Default, Deserialize, Serialize, PartialEq)]
#[derive(Debug, Default, serde::Deserialize, serde::Serialize, PartialEq)]
struct [<$variant Helper>]($($(#[$field_meta])? pub(super) $ty),*);

impl From<[<$variant Helper>]> for $variant {
Expand Down Expand Up @@ -487,7 +487,7 @@ macro_rules! seek {
seek!(@variant_struct $vis $variant $fields);
)*
paste::item! {
#[derive(Debug, Deserialize, Serialize, PartialEq)]
#[derive(Debug, serde::Deserialize, serde::Serialize, PartialEq)]
#[serde(untagged)]
$vis enum [<$name Payload>] {
$(
Expand Down Expand Up @@ -544,6 +544,7 @@ pub(crate) use seek;
mod tests {
use super::*;
use chrono::Utc;
use claims::assert_ok_eq;
use http::{Method, Request, StatusCode};
use insta::assert_snapshot;

Expand Down
1 change: 1 addition & 0 deletions src/controllers/keyword.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ use axum::Json;
use axum::extract::{FromRequestParts, Path, Query};
use diesel::prelude::*;
use http::request::Parts;
use serde::{Deserialize, Serialize};

#[derive(Debug, Deserialize, FromRequestParts, utoipa::IntoParams)]
#[from_request(via(Query))]
Expand Down
1 change: 1 addition & 0 deletions src/controllers/krate.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ use axum::extract::{FromRequestParts, Path};
use crates_io_database::schema::crates;
use diesel::{OptionalExtension, QueryDsl};
use diesel_async::{AsyncPgConnection, RunQueryDsl};
use serde::Deserialize;
use utoipa::IntoParams;

pub mod delete;
Expand Down
2 changes: 2 additions & 0 deletions src/controllers/krate/delete.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ use diesel_async::{AsyncConnection, AsyncPgConnection, RunQueryDsl};
use http::StatusCode;
use http::request::Parts;
use minijinja::context;
use serde::Deserialize;
use tracing::error;

const DOWNLOADS_PER_MONTH_LIMIT: u64 = 500;
Expand Down Expand Up @@ -205,6 +206,7 @@ mod tests {
use crate::tests::builders::{DependencyBuilder, PublishBuilder};
use crate::tests::util::{RequestHelper, Response, TestApp};
use axum::RequestPartsExt;
use claims::{assert_none, assert_some};
use crates_io_database::schema::crate_owners;
use diesel_async::AsyncPgConnection;
use http::{Request, StatusCode};
Expand Down
1 change: 1 addition & 0 deletions src/controllers/krate/downloads.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ use diesel::prelude::*;
use diesel_async::{AsyncPgConnection, RunQueryDsl};
use futures_util::FutureExt;
use futures_util::future::BoxFuture;
use serde::{Deserialize, Serialize};
use std::cmp;
use std::str::FromStr;

Expand Down
1 change: 1 addition & 0 deletions src/controllers/krate/follow.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ use axum::Json;
use diesel::prelude::*;
use diesel_async::{AsyncPgConnection, RunQueryDsl};
use http::request::Parts;
use serde::Serialize;

async fn follow_target(
crate_name: &str,
Expand Down
1 change: 1 addition & 0 deletions src/controllers/krate/metadata.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ use diesel::prelude::*;
use diesel_async::{AsyncPgConnection, RunQueryDsl};
use futures_util::FutureExt;
use futures_util::future::{BoxFuture, always_ready};
use serde::{Deserialize, Serialize};
use std::str::FromStr;

#[derive(Debug, Deserialize, FromRequestParts, utoipa::IntoParams)]
Expand Down
1 change: 1 addition & 0 deletions src/controllers/krate/owners.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ use http::request::Parts;
use minijinja::context;
use oauth2::AccessToken;
use secrecy::ExposeSecret;
use serde::{Deserialize, Serialize};
use thiserror::Error;
use tracing::warn;

Expand Down
2 changes: 2 additions & 0 deletions src/controllers/krate/publish.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ use sha2::{Digest, Sha256};
use std::collections::HashMap;
use tokio::io::{AsyncRead, AsyncReadExt};
use tokio_util::io::StreamReader;
use tracing::{error, instrument};
use url::Url;

use crate::models::{
Expand Down Expand Up @@ -1024,6 +1025,7 @@ impl From<TarballError> for BoxedAppError {
#[cfg(test)]
mod tests {
use super::{missing_metadata_error_message, validate_url};
use claims::assert_err;

#[test]
fn deny_relative_urls() {
Expand Down
1 change: 1 addition & 0 deletions src/controllers/krate/rev_deps.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ use crates_io_database::schema::{crates, users, versions};
use diesel::prelude::*;
use diesel_async::RunQueryDsl;
use http::request::Parts;
use serde::Serialize;

#[derive(Debug, Serialize, utoipa::ToSchema)]
pub struct RevDepsResponse {
Expand Down
4 changes: 3 additions & 1 deletion src/controllers/krate/search.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,15 @@ use axum::Json;
use axum::extract::FromRequestParts;
use axum_extra::extract::Query;
use derive_more::Deref;
use diesel::alias;
use diesel::dsl::{InnerJoinQuerySource, LeftJoinQuerySource, exists};
use diesel::prelude::*;
use diesel::sql_types::Bool;
use diesel_async::{AsyncPgConnection, RunQueryDsl};
use diesel_full_text_search::{configuration::TsConfigurationByName, *};
use http::request::Parts;
use tracing::Instrument;
use serde::{Deserialize, Serialize};
use tracing::{Instrument, info_span};
use utoipa::IntoParams;

use crate::app::AppState;
Expand Down
1 change: 1 addition & 0 deletions src/controllers/krate/versions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ use diesel_async::{AsyncPgConnection, RunQueryDsl};
use futures_util::{TryStreamExt, future};
use http::request::Parts;
use indexmap::{IndexMap, IndexSet};
use serde::{Deserialize, Serialize};
use std::str::FromStr;

#[derive(Debug, Deserialize, FromRequestParts, utoipa::IntoParams)]
Expand Down
21 changes: 11 additions & 10 deletions src/controllers/session.rs
Original file line number Diff line number Diff line change
@@ -1,13 +1,3 @@
use axum::Json;
use axum::extract::{FromRequestParts, Query};
use diesel::prelude::*;
use diesel_async::scoped_futures::ScopedFutureExt;
use diesel_async::{AsyncConnection, AsyncPgConnection, RunQueryDsl};
use http::request::Parts;
use minijinja::context;
use oauth2::{AuthorizationCode, CsrfToken, Scope, TokenResponse};
use secrecy::ExposeSecret;

use crate::app::AppState;
use crate::email::EmailMessage;
use crate::email::Emails;
Expand All @@ -17,8 +7,19 @@ use crate::schema::users;
use crate::util::diesel::is_read_only_error;
use crate::util::errors::{AppResult, bad_request, server_error};
use crate::views::EncodableMe;
use axum::Json;
use axum::extract::{FromRequestParts, Query};
use crates_io_github::GitHubUser;
use crates_io_session::SessionExtension;
use diesel::prelude::*;
use diesel_async::scoped_futures::ScopedFutureExt;
use diesel_async::{AsyncConnection, AsyncPgConnection, RunQueryDsl};
use http::request::Parts;
use minijinja::context;
use oauth2::{AuthorizationCode, CsrfToken, Scope, TokenResponse};
use secrecy::ExposeSecret;
use serde::{Deserialize, Serialize};
use tracing::warn;

#[derive(Debug, Serialize, utoipa::ToSchema)]
pub struct BeginResponse {
Expand Down
1 change: 1 addition & 0 deletions src/controllers/site_metadata.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
use crate::app::AppState;
use axum::Json;
use axum::response::IntoResponse;
use serde::Serialize;

#[derive(Debug, Serialize, utoipa::ToSchema)]
pub struct MetadataResponse<'a> {
Expand Down
1 change: 1 addition & 0 deletions src/controllers/summary.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ use axum::Json;
use diesel::prelude::*;
use diesel_async::{AsyncPgConnection, RunQueryDsl};
use futures_util::FutureExt;
use serde::Serialize;
use std::future::Future;

#[derive(Debug, Serialize, utoipa::ToSchema)]
Expand Down
1 change: 1 addition & 0 deletions src/controllers/team.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ use axum::Json;
use axum::extract::Path;
use diesel::prelude::*;
use diesel_async::RunQueryDsl;
use serde::Serialize;

#[derive(Debug, Serialize, utoipa::ToSchema)]
pub struct GetResponse {
Expand Down
3 changes: 2 additions & 1 deletion src/controllers/token.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ use http::StatusCode;
use http::request::Parts;
use minijinja::context;
use secrecy::ExposeSecret;
use serde::Serialize;
use serde::{Deserialize, Serialize};
use tracing::error;

#[derive(Deserialize)]
pub struct GetParams {
Expand Down
1 change: 1 addition & 0 deletions src/controllers/trustpub/github_configs/create/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ use http::request::Parts;
use minijinja::context;
use oauth2::AccessToken;
use secrecy::ExposeSecret;
use tracing::warn;

#[cfg(test)]
mod tests;
Expand Down
1 change: 1 addition & 0 deletions src/controllers/trustpub/github_configs/json.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
use axum::Json;
use axum::extract::FromRequest;
use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};

#[derive(Debug, Serialize, utoipa::ToSchema)]
pub struct GitHubConfig {
Expand Down
1 change: 1 addition & 0 deletions src/controllers/trustpub/github_configs/list/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ use diesel::dsl::{exists, select};
use diesel::prelude::*;
use diesel_async::RunQueryDsl;
use http::request::Parts;
use serde::Deserialize;

#[cfg(test)]
mod tests;
Expand Down
1 change: 1 addition & 0 deletions src/controllers/trustpub/tokens/exchange/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ use diesel::result::Error::DatabaseError;
use diesel_async::scoped_futures::ScopedFutureExt;
use diesel_async::{AsyncConnection, RunQueryDsl};
use secrecy::ExposeSecret;
use tracing::warn;

#[cfg(test)]
mod tests;
Expand Down
1 change: 1 addition & 0 deletions src/controllers/trustpub/tokens/exchange/tests.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
use crate::tests::builders::CrateBuilder;
use crate::tests::util::{MockAnonymousUser, RequestHelper, TestApp};
use claims::assert_ok;
use crates_io_database::models::trustpub::NewGitHubConfig;
use crates_io_database::schema::trustpub_tokens;
use crates_io_trustpub::access_token::AccessToken;
Expand Down
1 change: 1 addition & 0 deletions src/controllers/trustpub/tokens/json.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
use axum::Json;
use axum::extract::FromRequest;
use serde::{Deserialize, Serialize};

#[derive(Debug, Deserialize, FromRequest, utoipa::ToSchema)]
#[from_request(via(Json))]
Expand Down
1 change: 1 addition & 0 deletions src/controllers/user/email_notifications.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ use axum::Json;
use diesel::prelude::*;
use diesel_async::RunQueryDsl;
use http::request::Parts;
use serde::Deserialize;
use std::collections::HashMap;

#[derive(Deserialize)]
Expand Down
14 changes: 7 additions & 7 deletions src/controllers/user/me.rs
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
use crate::auth::AuthCheck;
use axum::Json;
use diesel::prelude::*;
use diesel_async::RunQueryDsl;
use futures_util::FutureExt;
use http::request::Parts;

use crate::app::AppState;
use crate::auth::AuthCheck;
use crate::controllers::helpers::Paginate;
use crate::controllers::helpers::pagination::{Paginated, PaginationOptions};
use crate::models::krate::CrateName;
use crate::models::{CrateOwner, Follow, OwnerKind, User, Version, VersionOwnerAction};
use crate::schema::{crate_owners, crates, emails, follows, users, versions};
use crate::util::errors::AppResult;
use crate::views::{EncodableMe, EncodablePrivateUser, EncodableVersion, OwnedCrate};
use axum::Json;
use diesel::prelude::*;
use diesel_async::RunQueryDsl;
use futures_util::FutureExt;
use http::request::Parts;
use serde::Serialize;

/// Get the currently authenticated user.
#[utoipa::path(
Expand Down
Loading