Add more must_use attributes (#2846)

… so people get a warning when they accidentally add a semicolon after the response expression in a handler function.

Also update changelogs of axum-core, axum-extra.
This commit is contained in:
Jonas Platte 2024-09-11 21:17:25 +02:00 committed by GitHub
parent fdf83d0b73
commit b214e39581
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 21 additions and 4 deletions

View file

@ -7,9 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
# Unreleased # Unreleased
- **added:** Implement `Copy` for `DefaultBodyLimit` - **added:** Derive `Clone` and `Copy` for `AppendHeaders` ([#2776])
- **added:** `must_use` attribute on `AppendHeaders` ([#2846])
- **added:** `must_use` attribute on `ErrorResponse` ([#2846])
- **added:** `must_use` attribute on `IntoResponse::into_response` ([#2846])
- **added:** `must_use` attribute on `IntoResponseParts` trait methods ([#2846])
- **added:** Implement `Copy` for `DefaultBodyLimit` ([#2875])
- **added**: `DefaultBodyLimit::max` and `DefaultBodyLimit::disable` are now - **added**: `DefaultBodyLimit::max` and `DefaultBodyLimit::disable` are now
allowed in const context allowed in const context ([#2875])
[#2776]: https://github.com/tokio-rs/axum/pull/2776
[#2846]: https://github.com/tokio-rs/axum/pull/2846
[#2875]: https://github.com/tokio-rs/axum/pull/2875
# 0.4.3 (13. January, 2024) # 0.4.3 (13. January, 2024)

View file

@ -111,6 +111,7 @@ use std::{
/// ``` /// ```
pub trait IntoResponse { pub trait IntoResponse {
/// Create a response. /// Create a response.
#[must_use]
fn into_response(self) -> Response; fn into_response(self) -> Response;
} }

View file

@ -105,21 +105,25 @@ pub struct ResponseParts {
impl ResponseParts { impl ResponseParts {
/// Gets a reference to the response headers. /// Gets a reference to the response headers.
#[must_use]
pub fn headers(&self) -> &HeaderMap { pub fn headers(&self) -> &HeaderMap {
self.res.headers() self.res.headers()
} }
/// Gets a mutable reference to the response headers. /// Gets a mutable reference to the response headers.
#[must_use]
pub fn headers_mut(&mut self) -> &mut HeaderMap { pub fn headers_mut(&mut self) -> &mut HeaderMap {
self.res.headers_mut() self.res.headers_mut()
} }
/// Gets a reference to the response extensions. /// Gets a reference to the response extensions.
#[must_use]
pub fn extensions(&self) -> &Extensions { pub fn extensions(&self) -> &Extensions {
self.res.extensions() self.res.extensions()
} }
/// Gets a mutable reference to the response extensions. /// Gets a mutable reference to the response extensions.
#[must_use]
pub fn extensions_mut(&mut self) -> &mut Extensions { pub fn extensions_mut(&mut self) -> &mut Extensions {
self.res.extensions_mut() self.res.extensions_mut()
} }

View file

@ -117,6 +117,7 @@ where
/// ///
/// See [`Result`] for more details. /// See [`Result`] for more details.
#[derive(Debug)] #[derive(Debug)]
#[must_use]
pub struct ErrorResponse(Response); pub struct ErrorResponse(Response);
impl<T> From<T> for ErrorResponse impl<T> From<T> for ErrorResponse

View file

@ -7,7 +7,9 @@ and this project adheres to [Semantic Versioning].
# Unreleased # Unreleased
- None. - **added:** The `response::Attachment` type ([#2789])
[#2789]: https://github.com/tokio-rs/axum/pull/2789
# 0.9.3 (24. March, 2024) # 0.9.3 (24. March, 2024)

View file

@ -33,8 +33,8 @@ use tracing::error;
/// # Note /// # Note
/// ///
/// If you use axum with hyper, hyper will set the `Content-Length` if it is known. /// If you use axum with hyper, hyper will set the `Content-Length` if it is known.
///
#[derive(Debug)] #[derive(Debug)]
#[must_use]
pub struct Attachment<T> { pub struct Attachment<T> {
inner: T, inner: T,
filename: Option<HeaderValue>, filename: Option<HeaderValue>,