Skip to main content

forward

Function forward 

Source
pub fn forward<T, S, K>(
    src: &mut S,
    snk: &mut K,
    max: usize,
) -> (usize, Option<K::Error>)
where S: Source<T>, K: Sink<T>,
Expand description

Transfer up to max items from a Source into a Sink.

Stops early if the source is empty or the sink returns an error. Returns (transferred, last_error)last_error is Some only if the sink rejected a value.

§Example

use ph_eventing::{EventBuf, SeqRing};
use ph_eventing::traits::{Sink, Source, forward};

let seq = SeqRing::<u32, 8>::new();
let sp = seq.producer();
let mut sc = seq.consumer();

sp.push(1);
sp.push(2);

let eb = EventBuf::<u32, 8>::new();
let mut ep = eb.producer();

let (n, err) = forward(&mut sc, &mut ep, 10);
assert_eq!(n, 2);
assert!(err.is_none());