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