[−][src]Struct ringbuf::Consumer
Consumer part of ring buffer.
Methods
impl<T: Sized> Consumer<T>
[src]
pub fn capacity(&self) -> usize
[src]
Returns capacity of the ring buffer.
pub fn is_empty(&self) -> bool
[src]
Checks if the ring buffer is empty.
pub fn is_full(&self) -> bool
[src]
Checks if the ring buffer is full.
pub fn len(&self) -> usize
[src]
The length of the data in the buffer
pub fn remaining(&self) -> usize
[src]
The remaining space in the buffer.
pub fn pop(&mut self) -> Result<T, PopError>
[src]
Removes first element from the ring buffer and returns it.
impl<T: Sized + Copy> Consumer<T>
[src]
pub fn pop_slice(&mut self, elems: &mut [T]) -> Result<usize, PopSliceError>
[src]
Removes first elements from the ring buffer and writes them into a slice.
Elements should be Copy
.
On success returns count of elements been removed from the ring buffer.
pub fn move_slice(
&mut self,
other: &mut Producer<T>,
count: Option<usize>
) -> Result<usize, MoveSliceError>
[src]
&mut self,
other: &mut Producer<T>,
count: Option<usize>
) -> Result<usize, MoveSliceError>
Removes at most count
elements from the Consumer
of the ring buffer
and appends them to the Producer
of the another one.
If count
is None
then as much as possible elements will be moved.
Elements should be Copy
.
On success returns count of elements been moved.
impl Consumer<u8>
[src]
pub fn write_into(
&mut self,
writer: &mut dyn Write,
count: Option<usize>
) -> Result<usize, WriteIntoError>
[src]
&mut self,
writer: &mut dyn Write,
count: Option<usize>
) -> Result<usize, WriteIntoError>
Removes at most first count
bytes from the ring buffer and writes them into
a Write
instance.
If count
is None
then as much as possible bytes will be written.
impl<T: Sized> Consumer<T>
[src]
pub unsafe fn pop_access<R, E, F>(
&mut self,
f: F
) -> Result<Result<(usize, R), E>, PopAccessError> where
R: Sized,
E: Sized,
F: FnOnce(&mut [T], &mut [T]) -> Result<(usize, R), E>,
[src]
&mut self,
f: F
) -> Result<Result<(usize, R), E>, PopAccessError> where
R: Sized,
E: Sized,
F: FnOnce(&mut [T], &mut [T]) -> Result<(usize, R), E>,
Allows to read from ring buffer memory directry.
This function is unsafe beacuse it gives access to possibly uninitialized memory and transfers to the user the responsibility of manually calling destructors
Takes a function f
as argument.
f
takes two slices of ring buffer content (the second one may be empty). First slice contains older elements.
f
should return:
+ On success: pair of number of elements been read, and some arbitrary data.
+ On failure: some another arbitrary data.
On success returns data returned from f
.
Trait Implementations
impl Read for Consumer<u8>
[src]
fn read(&mut self, buffer: &mut [u8]) -> Result<usize>
[src]
fn read_vectored(&mut self, bufs: &mut [IoSliceMut]) -> Result<usize, Error>
1.36.0[src]
Like read
, except that it reads into a slice of buffers. Read more
unsafe fn initializer(&self) -> Initializer
[src]
read_initializer
)Determines if this Read
er can work with buffers of uninitialized memory. Read more
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
1.0.0[src]
Read all bytes until EOF in this source, placing them into buf
. Read more
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
1.0.0[src]
Read all bytes until EOF in this source, appending them to buf
. Read more
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
1.6.0[src]
Read the exact number of bytes required to fill buf
. Read more
fn by_ref(&mut self) -> &mut Self
1.0.0[src]
Creates a "by reference" adaptor for this instance of Read
. Read more
fn bytes(self) -> Bytes<Self>
1.0.0[src]
Transforms this Read
instance to an [Iterator
] over its bytes. Read more
fn chain<R>(self, next: R) -> Chain<Self, R> where
R: Read,
1.0.0[src]
R: Read,
Creates an adaptor which will chain this stream with another. Read more
fn take(self, limit: u64) -> Take<Self>
1.0.0[src]
Creates an adaptor which will read at most limit
bytes from it. Read more
Auto Trait Implementations
impl<T> Unpin for Consumer<T>
impl<T> Sync for Consumer<T> where
T: Send,
T: Send,
impl<T> Send for Consumer<T> where
T: Send,
T: Send,
impl<T> !UnwindSafe for Consumer<T>
impl<T> !RefUnwindSafe for Consumer<T>
Blanket Implementations
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,