async_ringbuf

Function async_transfer

Source
pub async fn async_transfer<T, As: AsyncConsumer<Item = T>, Ad: AsyncProducer<Item = T>>(
    src: &mut As,
    dst: &mut Ad,
    count: Option<usize>,
) -> usize
Expand description

Tranfer data from one ring buffer to another.

count is the number of items to transfer. The number of actually transfered items is returned.

If count is Some(n) then exactly n items will be transfered on completion except the situation when src or dst is closed or the future is dropped before completion.

If count is None then transfer will be performed until the one or another ring buffer is closed. Transfer also safely stopped if the future is dropped.