pub fn forward<T, S, K>(
src: &mut S,
snk: &mut K,
max: usize,
) -> (usize, Option<K::Error>)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());