diff options
author | Alex Auvolat <alex@adnab.me> | 2024-02-23 16:50:34 +0100 |
---|---|---|
committer | Alex Auvolat <alex@adnab.me> | 2024-02-23 16:50:34 +0100 |
commit | 916c67ccf4c9d31c14088f2d775e15c64750458f (patch) | |
tree | 63226f78b128f33b63d3b223283047372bcc31f2 /src/net/bytes_buf.rs | |
parent | 81cebdd12415381f67747e96591e83b1a4a8cc0b (diff) | |
parent | 61758ce0f91b930542bd2ee3c72735000cc12e75 (diff) | |
download | garage-916c67ccf4c9d31c14088f2d775e15c64750458f.tar.gz garage-916c67ccf4c9d31c14088f2d775e15c64750458f.zip |
Merge branch 'main' into next-0.10
Diffstat (limited to 'src/net/bytes_buf.rs')
-rw-r--r-- | src/net/bytes_buf.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/net/bytes_buf.rs b/src/net/bytes_buf.rs index 3929a860..1d928ffb 100644 --- a/src/net/bytes_buf.rs +++ b/src/net/bytes_buf.rs @@ -3,6 +3,8 @@ use std::collections::VecDeque; use bytes::BytesMut; +use crate::stream::ByteStream; + pub use bytes::Bytes; /// A circular buffer of bytes, internally represented as a list of Bytes @@ -119,6 +121,17 @@ impl BytesBuf { pub fn into_slices(self) -> VecDeque<Bytes> { self.buf } + + /// Return the entire buffer concatenated into a single big Bytes + pub fn into_bytes(mut self) -> Bytes { + self.take_all() + } + + /// Return the content as a stream of individual chunks + pub fn into_stream(self) -> ByteStream { + use futures::stream::StreamExt; + Box::pin(futures::stream::iter(self.buf).map(|x| Ok(x))) + } } impl Default for BytesBuf { |