pub struct StreamBuf { /* private fields */ }
Expand description
Automatically resizing buffer.
Implementations§
Source§impl StreamBuf
impl StreamBuf
Sourcepub fn new() -> StreamBuf ⓘ
pub fn new() -> StreamBuf ⓘ
Returns a new StreamBuf
.
Equivalent to with_max_len(usize::max_len())
§Examples
use asyncio::StreamBuf;
let mut sbuf = StreamBuf::new();
Sourcepub fn with_max_len(max: usize) -> StreamBuf ⓘ
pub fn with_max_len(max: usize) -> StreamBuf ⓘ
Returns a new StreamBuf
with the max length of the allocatable size.
§Examples
use asyncio::StreamBuf;
let mut sbuf = StreamBuf::with_max_len(1024);
Sourcepub fn capacity(&self) -> usize
pub fn capacity(&self) -> usize
Returns an allocated size of the buffer.
§Examples
use asyncio::StreamBuf;
let mut sbuf = StreamBuf::new();
assert_eq!(sbuf.capacity(), 0);
Sourcepub fn clear(&mut self)
pub fn clear(&mut self)
Clears the buffer, removing all values.
§Examples
use asyncio::StreamBuf;
let mut sbuf = StreamBuf::from(vec![1,2,3]);
sbuf.clear();
assert_eq!(sbuf.is_empty(), true);
Sourcepub fn consume(&mut self, len: usize)
pub fn consume(&mut self, len: usize)
Remove characters from the input sequence.
§Examples
use asyncio::StreamBuf;
let mut sbuf = StreamBuf::from(vec![1,2,3]);
assert_eq!(sbuf.len(), 3);
sbuf.consume(3);
assert_eq!(sbuf.len(), 0);
Sourcepub fn commit(&mut self, len: usize)
pub fn commit(&mut self, len: usize)
Move characters from the output sequence to the input sequence.
§Examples
use asyncio::StreamBuf;
let mut sbuf = StreamBuf::new();
let _ = sbuf.prepare(256);
assert_eq!(sbuf.len(), 0);
sbuf.commit(3);
assert_eq!(sbuf.len(), 3);
Sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Returns true
if the empty buffer.
§Examples
use asyncio::StreamBuf;
let sbuf = StreamBuf::new();
assert!(sbuf.is_empty());
Sourcepub fn len(&self) -> usize
pub fn len(&self) -> usize
Returns a length of the input sequence.
§Examples
use asyncio::StreamBuf;
let sbuf = StreamBuf::from(vec![1,2,3]);
assert_eq!(sbuf.len(), 3);
Sourcepub fn max_len(&self) -> usize
pub fn max_len(&self) -> usize
Returns a maximum length of the StreamBuf
.
§Examples
use asyncio::StreamBuf;
let sbuf = StreamBuf::new();
assert_eq!(sbuf.max_len(), usize::max_value());
Sourcepub fn prepare(&mut self, len: usize) -> Result<&mut [u8]>
pub fn prepare(&mut self, len: usize) -> Result<&mut [u8]>
Returns a &mut [u8]
that represents a output sequence.
§Examples
use asyncio::StreamBuf;
let mut sbuf = StreamBuf::with_max_len(8);
assert_eq!(sbuf.prepare(5).unwrap().len(), 5);
sbuf.commit(5);
assert_eq!(sbuf.prepare(5).unwrap().len(), 3);
Sourcepub fn prepare_exact(&mut self, len: usize) -> Result<&mut [u8]>
pub fn prepare_exact(&mut self, len: usize) -> Result<&mut [u8]>
Returns a &mut [u8]
that represents a output sequence.
§Examples
use asyncio::StreamBuf;
let mut sbuf = StreamBuf::with_max_len(8);
assert_eq!(sbuf.prepare_exact(5).unwrap().len(), 5);
sbuf.commit(5);
assert!(sbuf.prepare_exact(5).is_err());
Sourcepub fn as_mut_slice(&mut self) -> &mut [u8] ⓘ
pub fn as_mut_slice(&mut self) -> &mut [u8] ⓘ
Returns a &mut [u8]
that represents the input sequence.
Trait Implementations§
Source§impl Read for StreamBuf
impl Read for StreamBuf
Source§fn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
Pull some bytes from this source into the specified buffer, returning
how many bytes were read. Read more
1.36.0 · Source§fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
Like
read
, except that it reads into a slice of buffers. Read moreSource§fn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
)1.0.0 · Source§fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
Reads all bytes until EOF in this source, placing them into
buf
. Read more1.0.0 · Source§fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
Reads all bytes until EOF in this source, appending them to
buf
. Read more1.6.0 · Source§fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
Reads the exact number of bytes required to fill
buf
. Read moreSource§fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf
)Pull some bytes from this source into the specified buffer. Read more
Source§fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf
)Reads the exact number of bytes required to fill
cursor
. Read more1.0.0 · Source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Creates a “by reference” adaptor for this instance of
Read
. Read moreSource§impl Write for StreamBuf
impl Write for StreamBuf
Source§fn write(&mut self, buf: &[u8]) -> Result<usize>
fn write(&mut self, buf: &[u8]) -> Result<usize>
Writes a buffer into this writer, returning how many bytes were written. Read more
Source§fn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
Flushes this output stream, ensuring that all intermediately buffered
contents reach their destination. Read more
Source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
)1.0.0 · Source§fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
Attempts to write an entire buffer into this writer. Read more
Source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
write_all_vectored
)Attempts to write multiple buffers into this writer. Read more
Auto Trait Implementations§
impl Freeze for StreamBuf
impl RefUnwindSafe for StreamBuf
impl Send for StreamBuf
impl Sync for StreamBuf
impl Unpin for StreamBuf
impl UnwindSafe for StreamBuf
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more