aboutsummaryrefslogtreecommitdiff
path: root/src/net/bytes_buf.rs
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2024-02-23 16:50:34 +0100
committerAlex Auvolat <alex@adnab.me>2024-02-23 16:50:34 +0100
commit916c67ccf4c9d31c14088f2d775e15c64750458f (patch)
tree63226f78b128f33b63d3b223283047372bcc31f2 /src/net/bytes_buf.rs
parent81cebdd12415381f67747e96591e83b1a4a8cc0b (diff)
parent61758ce0f91b930542bd2ee3c72735000cc12e75 (diff)
downloadgarage-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.rs13
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 {