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}