| //! HTTP specific body utilities. |
| |
| use http_body::Body; |
| |
| /// A type erased HTTP body used for tonic services. |
| pub type BoxBody = http_body::combinators::UnsyncBoxBody<bytes::Bytes, crate::Status>; |
| |
| /// Convert a [`http_body::Body`] into a [`BoxBody`]. |
| pub(crate) fn boxed<B>(body: B) -> BoxBody |
| where |
| B: http_body::Body<Data = bytes::Bytes> + Send + 'static, |
| B::Error: Into<crate::Error>, |
| { |
| body.map_err(crate::Status::map_error).boxed_unsync() |
| } |
| |
| /// Create an empty `BoxBody` |
| pub fn empty_body() -> BoxBody { |
| http_body::Empty::new() |
| .map_err(|err| match err {}) |
| .boxed_unsync() |
| } |