Struct bytes::RingBuf [] [src]

pub struct RingBuf {
    // some fields omitted
}

Buf backed by a continous chunk of memory. Maintains a read cursor and a write cursor. When reads and writes reach the end of the allocated buffer, wraps around to the start.

This type is suited for use cases where reads and writes are intermixed.

Methods

impl RingBuf
[src]

fn new(capacity: usize) -> RingBuf

Allocates a new RingBuf with the specified capacity.

fn is_full(&self) -> bool

Returns true if the buf cannot accept any further writes.

fn is_empty(&self) -> bool

Returns true if the buf cannot accept any further reads.

fn capacity(&self) -> usize

Returns the number of bytes that the buf can hold.

fn mark(&mut self)

Marks the current read location.

Together with reset, this can be used to read from a section of the buffer multiple times. The mark will be cleared if it is overwritten during a write.

fn reset(&mut self)

Resets the read position to the previously marked position.

Together with mark, this can be used to read from a section of the buffer multiple times.

Panics

This method will panic if no mark has been set,

fn clear(&mut self)

Resets all internal state to the initial state.

Trait Implementations

impl Clone for RingBuf
[src]

fn clone(&self) -> RingBuf

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)
1.0.0

Performs copy-assignment from source. Read more

impl Debug for RingBuf
[src]

fn fmt(&self, fmt: &mut Formatter) -> Result

Formats the value using the given formatter.

impl Buf for RingBuf
[src]

fn remaining(&self) -> usize

Returns the number of bytes that can be accessed from the Buf

fn bytes(&self) -> &[u8]

Returns a slice starting at the current Buf position and of length between 0 and Buf::remaining(). Read more

fn advance(&mut self, cnt: usize)

Advance the internal cursor of the Buf

fn has_remaining(&self) -> bool

Returns true if there are any more bytes to consume

fn read_slice(&mut self, dst: &mut [u8]) -> usize

Read bytes from the Buf into the given slice and advance the cursor by the number of bytes read. Returns the number of bytes read. Read more

fn read_byte(&mut self) -> Option<u8>

Read a single byte from the Buf

impl MutBuf for RingBuf
[src]

fn remaining(&self) -> usize

Returns the number of bytes that can be written to the MutBuf

unsafe fn advance(&mut self, cnt: usize)

Advance the internal cursor of the MutBuf

unsafe fn mut_bytes(&mut self) -> &mut [u8]

Returns a mutable slice starting at the current MutBuf position and of length between 0 and MutBuf::remaining(). Read more

fn has_remaining(&self) -> bool

Returns true iff there is any more space for bytes to be written

fn write_slice(&mut self, src: &[u8]) -> usize

Write bytes from the given slice into the MutBuf and advance the cursor by the number of bytes written. Returns the number of bytes written. Read more

fn write_byte(&mut self, byte: u8) -> bool

Write a single byte to the MuBuf

impl Read for RingBuf
[src]

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

fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usizeError>
1.0.0

Read all bytes until EOF in this source, placing them into buf. Read more

fn read_to_string(&mut self, buf: &mut String) -> Result<usizeError>
1.0.0

Read all bytes until EOF in this source, placing them into buf. Read more

fn read_exact(&mut self, buf: &mut [u8]) -> Result<()Error>
1.6.0

Read the exact number of bytes required to fill buf. Read more

fn by_ref(&mut self) -> &mut Self
1.0.0

Creates a "by reference" adaptor for this instance of Read. Read more

fn bytes(self) -> Bytes<Self>
1.0.0

Transforms this Read instance to an Iterator over its bytes. Read more

fn chars(self) -> Chars<Self>

Unstable (io)

: the semantics of a partial read/write of where errors happen is currently unclear and may change

Transforms this Read instance to an Iterator over chars. Read more

fn chain<R>(self, next: R) -> Chain<Self, R> where R: Read
1.0.0

Creates an adaptor which will chain this stream with another. Read more

fn take(self, limit: u64) -> Take<Self>
1.0.0

Creates an adaptor which will read at most limit bytes from it. Read more

impl Write for RingBuf
[src]

fn write(&mut self, buf: &[u8]) -> Result<usize>

Write a buffer into this object, returning how many bytes were written. Read more

fn flush(&mut self) -> Result<()>

Flush this output stream, ensuring that all intermediately buffered contents reach their destination. Read more

fn write_all(&mut self, buf: &[u8]) -> Result<()Error>
1.0.0

Attempts to write an entire buffer into this write. Read more

fn write_fmt(&mut self, fmt: Arguments) -> Result<()Error>
1.0.0

Writes a formatted string into this writer, returning any error encountered. Read more

fn by_ref(&mut self) -> &mut Self
1.0.0

Creates a "by reference" adaptor for this instance of Write. Read more

impl Send for RingBuf
[src]