midi_toolkit/sequence/common/
cast_delta.rs

1use crate::{events::CastEventDelta, num::MIDINum};
2
3pub struct TimeCaster<DT: MIDINum>(DT);
4
5impl<DT: MIDINum> TimeCaster<DT> {
6    pub fn cast_event_delta<
7        E: CastEventDelta<DT>,
8        Err,
9        I: Iterator<Item = Result<E, Err>> + Sized,
10    >(
11        iter: I,
12    ) -> impl Iterator<Item = Result<E::Output, Err>> {
13        iter.map(move |e| {
14            let e = e?;
15            Ok(e.cast_delta())
16        })
17    }
18}