Implement IntoResponse for [u8; N] and &'static [u8; N] (#1690)

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>
This commit is contained in:
valkyrie_pilot 2023-01-13 02:12:51 -07:00 committed by GitHub
parent e3aaeb3cb7
commit e4c6d76bca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 46 additions and 30 deletions

View File

@ -7,7 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
# Unreleased
- None.
- **added** Implement IntoResponse for &'static [u8; N] and [u8; N] ([#1690])
[#1690]: https://github.com/tokio-rs/axum/pull/1690
# 0.3.1 (9. January, 2023)

View File

@ -348,6 +348,18 @@ impl IntoResponse for &'static [u8] {
}
}
impl<const N: usize> IntoResponse for &'static [u8; N] {
fn into_response(self) -> Response {
self.as_slice().into_response()
}
}
impl<const N: usize> IntoResponse for [u8; N] {
fn into_response(self) -> Response {
self.to_vec().into_response()
}
}
impl IntoResponse for Vec<u8> {
fn into_response(self) -> Response {
Cow::<'static, [u8]>::Owned(self).into_response()

View File

@ -5,6 +5,7 @@ error[E0277]: the trait bound `bool: IntoResponse` is not satisfied
| ^^^^ the trait `IntoResponse` is not implemented for `bool`
|
= help: the following other types implement trait `IntoResponse`:
&'static [u8; N]
&'static [u8]
&'static str
()
@ -12,8 +13,7 @@ error[E0277]: the trait bound `bool: IntoResponse` is not satisfied
(Response<()>, T1, R)
(Response<()>, T1, T2, R)
(Response<()>, T1, T2, T3, R)
(Response<()>, T1, T2, T3, T4, R)
and 120 others
and 122 others
note: required by a bound in `__axum_macros_check_handler_into_response::{closure#0}::check`
--> tests/debug_handler/fail/wrong_return_type.rs:4:23
|

View File

@ -7,7 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
# Unreleased
- None.
- - **added** Implement IntoResponse for &'static [u8; N] and [u8; N] ([#1690])
[#1690]: https://github.com/tokio-rs/axum/pull/1690
# 0.6.2 (9. January, 2023)