mirror of https://github.com/fafhrd91/actix-web
update changelog and fix msrv
This commit is contained in:
parent
36deed2246
commit
deee2d6e3a
|
@ -2,18 +2,22 @@
|
||||||
|
|
||||||
## Unreleased - 2021-xx-xx
|
## Unreleased - 2021-xx-xx
|
||||||
### Added
|
### Added
|
||||||
|
* `BoxAnyBody`: a boxed message body with boxed errors. [#2183]
|
||||||
* Re-export `http` crate's `Error` type as `error::HttpError`. [#2171]
|
* Re-export `http` crate's `Error` type as `error::HttpError`. [#2171]
|
||||||
* Re-export `StatusCode`, `Method`, `Version` and `Uri` at the crate root. [#2171]
|
* Re-export `StatusCode`, `Method`, `Version` and `Uri` at the crate root. [#2171]
|
||||||
* Re-export `ContentEncoding` and `ConnectionType` at the crate root. [#2171]
|
* Re-export `ContentEncoding` and `ConnectionType` at the crate root. [#2171]
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
* The `MessageBody` trait now has an associated `Error` type. [#2183]
|
||||||
* `header` mod is now public. [#2171]
|
* `header` mod is now public. [#2171]
|
||||||
* `uri` mod is now public. [#2171]
|
* `uri` mod is now public. [#2171]
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
* Stop re-exporting `http` crate's `HeaderMap` types in addition to ours. [#2171]
|
* Stop re-exporting `http` crate's `HeaderMap` types in addition to ours. [#2171]
|
||||||
|
* Down-casting for `MessageBody` types. [#2183]
|
||||||
|
|
||||||
[#2171]: https://github.com/actix/actix-web/pull/2171
|
[#2171]: https://github.com/actix/actix-web/pull/2171
|
||||||
|
[#2183]: https://github.com/actix/actix-web/pull/2183
|
||||||
|
|
||||||
|
|
||||||
## 3.0.0-beta.6 - 2021-04-17
|
## 3.0.0-beta.6 - 2021-04-17
|
||||||
|
|
|
@ -60,7 +60,7 @@ impl MessageBody for Body {
|
||||||
fn poll_next(
|
fn poll_next(
|
||||||
self: Pin<&mut Self>,
|
self: Pin<&mut Self>,
|
||||||
cx: &mut Context<'_>,
|
cx: &mut Context<'_>,
|
||||||
) -> Poll<Option<Result<Bytes, Error>>> {
|
) -> Poll<Option<Result<Bytes, Self::Error>>> {
|
||||||
match self.get_mut() {
|
match self.get_mut() {
|
||||||
Body::None => Poll::Ready(None),
|
Body::None => Poll::Ready(None),
|
||||||
Body::Empty => Poll::Ready(None),
|
Body::Empty => Poll::Ready(None),
|
||||||
|
@ -74,7 +74,7 @@ impl MessageBody for Body {
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: MSRV 1.51: poll_map_err
|
// TODO: MSRV 1.51: poll_map_err
|
||||||
Body::Message(body) => match ready!(body.as_mut().poll_next(cx)) {
|
Body::Message(body) => match ready!(body.as_pin_mut().poll_next(cx)) {
|
||||||
Some(Err(err)) => Poll::Ready(Some(Err(err.into()))),
|
Some(Err(err)) => Poll::Ready(Some(Err(err.into()))),
|
||||||
Some(Ok(val)) => Poll::Ready(Some(Ok(val))),
|
Some(Ok(val)) => Poll::Ready(Some(Ok(val))),
|
||||||
None => Poll::Ready(None),
|
None => Poll::Ready(None),
|
||||||
|
@ -194,7 +194,7 @@ impl BoxAnyBody {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns a mutable pinned reference to the inner message body type.
|
/// Returns a mutable pinned reference to the inner message body type.
|
||||||
pub fn as_mut(
|
pub fn as_pin_mut(
|
||||||
&mut self,
|
&mut self,
|
||||||
) -> Pin<&mut (dyn MessageBody<Error = Box<dyn StdError + 'static>>)> {
|
) -> Pin<&mut (dyn MessageBody<Error = Box<dyn StdError + 'static>>)> {
|
||||||
self.0.as_mut()
|
self.0.as_mut()
|
||||||
|
@ -218,6 +218,7 @@ impl MessageBody for BoxAnyBody {
|
||||||
mut self: Pin<&mut Self>,
|
mut self: Pin<&mut Self>,
|
||||||
cx: &mut Context<'_>,
|
cx: &mut Context<'_>,
|
||||||
) -> Poll<Option<Result<Bytes, Self::Error>>> {
|
) -> Poll<Option<Result<Bytes, Self::Error>>> {
|
||||||
|
// TODO: MSRV 1.51: poll_map_err
|
||||||
match ready!(self.0.as_mut().poll_next(cx)) {
|
match ready!(self.0.as_mut().poll_next(cx)) {
|
||||||
Some(Err(err)) => Poll::Ready(Some(Err(err.into()))),
|
Some(Err(err)) => Poll::Ready(Some(Err(err.into()))),
|
||||||
Some(Ok(val)) => Poll::Ready(Some(Ok(val))),
|
Some(Ok(val)) => Poll::Ready(Some(Ok(val))),
|
||||||
|
|
|
@ -50,7 +50,7 @@ where
|
||||||
fn poll_next(
|
fn poll_next(
|
||||||
mut self: Pin<&mut Self>,
|
mut self: Pin<&mut Self>,
|
||||||
cx: &mut Context<'_>,
|
cx: &mut Context<'_>,
|
||||||
) -> Poll<Option<Result<Bytes, Error>>> {
|
) -> Poll<Option<Result<Bytes, Self::Error>>> {
|
||||||
loop {
|
loop {
|
||||||
let stream = self.as_mut().project().stream;
|
let stream = self.as_mut().project().stream;
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ use std::{
|
||||||
};
|
};
|
||||||
|
|
||||||
use bytes::Bytes;
|
use bytes::Bytes;
|
||||||
use futures_core::Stream;
|
use futures_core::{ready, Stream};
|
||||||
use pin_project::pin_project;
|
use pin_project::pin_project;
|
||||||
|
|
||||||
use crate::error::Error;
|
use crate::error::Error;
|
||||||
|
@ -77,7 +77,12 @@ where
|
||||||
cx: &mut Context<'_>,
|
cx: &mut Context<'_>,
|
||||||
) -> Poll<Option<Self::Item>> {
|
) -> Poll<Option<Self::Item>> {
|
||||||
match self.project() {
|
match self.project() {
|
||||||
ResponseBodyProj::Body(body) => body.poll_next(cx).map_err(Into::into),
|
// TODO: MSRV 1.51: poll_map_err
|
||||||
|
ResponseBodyProj::Body(body) => match ready!(body.poll_next(cx)) {
|
||||||
|
Some(Err(err)) => Poll::Ready(Some(Err(err.into()))),
|
||||||
|
Some(Ok(val)) => Poll::Ready(Some(Ok(val))),
|
||||||
|
None => Poll::Ready(None),
|
||||||
|
},
|
||||||
ResponseBodyProj::Other(body) => Pin::new(body).poll_next(cx),
|
ResponseBodyProj::Other(body) => Pin::new(body).poll_next(cx),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,7 +50,7 @@ where
|
||||||
fn poll_next(
|
fn poll_next(
|
||||||
mut self: Pin<&mut Self>,
|
mut self: Pin<&mut Self>,
|
||||||
cx: &mut Context<'_>,
|
cx: &mut Context<'_>,
|
||||||
) -> Poll<Option<Result<Bytes, Error>>> {
|
) -> Poll<Option<Result<Bytes, Self::Error>>> {
|
||||||
loop {
|
loop {
|
||||||
let stream = self.as_mut().project().stream;
|
let stream = self.as_mut().project().stream;
|
||||||
|
|
||||||
|
|
|
@ -131,7 +131,7 @@ where
|
||||||
None => Poll::Ready(None),
|
None => Poll::Ready(None),
|
||||||
},
|
},
|
||||||
EncoderBodyProj::BoxedStream(ref mut b) => {
|
EncoderBodyProj::BoxedStream(ref mut b) => {
|
||||||
match ready!(b.as_mut().poll_next(cx)) {
|
match ready!(b.as_pin_mut().poll_next(cx)) {
|
||||||
Some(Err(err)) => {
|
Some(Err(err)) => {
|
||||||
Poll::Ready(Some(Err(EncoderError::Boxed(err.into()))))
|
Poll::Ready(Some(Err(EncoderError::Boxed(err.into()))))
|
||||||
}
|
}
|
||||||
|
|
|
@ -340,7 +340,7 @@ where
|
||||||
fn poll_next(
|
fn poll_next(
|
||||||
self: Pin<&mut Self>,
|
self: Pin<&mut Self>,
|
||||||
cx: &mut Context<'_>,
|
cx: &mut Context<'_>,
|
||||||
) -> Poll<Option<Result<Bytes, Error>>> {
|
) -> Poll<Option<Result<Bytes, Self::Error>>> {
|
||||||
let this = self.project();
|
let this = self.project();
|
||||||
match this.body.poll_next(cx) {
|
match this.body.poll_next(cx) {
|
||||||
Poll::Ready(Some(Ok(chunk))) => {
|
Poll::Ready(Some(Ok(chunk))) => {
|
||||||
|
|
Loading…
Reference in New Issue