[][src]Struct ringbuf::Producer

pub struct Producer<T> { /* fields omitted */ }

Producer part of ring buffer.

Methods

impl<T: Sized> Producer<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 push(&mut self, elem: T) -> Result<(), PushError<T>>
[src]

Appends an element to the ring buffer. On failure returns an error containing the element that hasn't beed appended.

impl<T: Sized + Copy> Producer<T>
[src]

pub fn push_slice(&mut self, elems: &[T]) -> Result<usize, PushSliceError>
[src]

Appends elements from slice to the ring buffer. Elements should be Copy.

On success returns count of elements been appended to the ring buffer.

pub fn move_slice(
    &mut self,
    other: &mut Consumer<T>,
    count: Option<usize>
) -> Result<usize, MoveSliceError>
[src]

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 Producer<u8>
[src]

pub fn read_from(
    &mut self,
    reader: &mut dyn Read,
    count: Option<usize>
) -> Result<usize, ReadFromError>
[src]

Reads at most count bytes from Read instance and appends them to the ring buffer. If count is None then as much as possible bytes will be read.

impl<T: Sized> Producer<T>
[src]

pub unsafe fn push_access<R, E, F>(
    &mut self,
    f: F
) -> Result<Result<(usize, R), E>, PushAccessError> where
    R: Sized,
    E: Sized,
    F: FnOnce(&mut [T], &mut [T]) -> Result<(usize, R), E>, 
[src]

Allows to write into 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 written, and some arbitrary data.
  • On failure: some another arbitrary data.

On success returns data returned from f.

Trait Implementations

impl Write for Producer<u8>
[src]

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

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

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

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

fn by_ref(&mut self) -> &mut Self
1.0.0
[src]

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

Auto Trait Implementations

impl<T> Send for Producer<T> where
    T: Send

impl<T> Sync for Producer<T> where
    T: Send

Blanket Implementations

impl<T> From for T
[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Any for T where
    T: 'static + ?Sized
[src]