Add as_bytes method to Body (#708)
				
					
				
			This commit is contained in:
		| @@ -35,6 +35,16 @@ struct WrapStream<S>(S); | |||||||
| struct WrapHyper(hyper::Body); | struct WrapHyper(hyper::Body); | ||||||
|  |  | ||||||
| impl Body { | impl Body { | ||||||
|  |     /// Returns a reference to the internal data of the `Body`. | ||||||
|  |     /// | ||||||
|  |     /// `None` is returned, if the underlying data is a stream. | ||||||
|  |     pub fn as_bytes(&self) -> Option<&[u8]> { | ||||||
|  |         match &self.inner { | ||||||
|  |             Inner::Reusable(bytes) => Some(bytes.as_ref()), | ||||||
|  |             Inner::Streaming { .. } => None, | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|     /// Wrap a futures `Stream` in a box inside `Body`. |     /// Wrap a futures `Stream` in a box inside `Body`. | ||||||
|     /// |     /// | ||||||
|     /// # Example |     /// # Example | ||||||
| @@ -339,3 +349,15 @@ impl HttpBody for WrapHyper { | |||||||
|         HttpBody::size_hint(&self.0) |         HttpBody::size_hint(&self.0) | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | #[cfg(test)] | ||||||
|  | mod tests { | ||||||
|  |     use super::Body; | ||||||
|  |  | ||||||
|  |     #[test] | ||||||
|  |     fn test_as_bytes() { | ||||||
|  |         let test_data = b"Test body"; | ||||||
|  |         let body = Body::from(&test_data[..]); | ||||||
|  |         assert_eq!(body.as_bytes(), Some(&test_data[..])); | ||||||
|  |     } | ||||||
|  | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user