Macro rmididings::Chain [−][src]
macro_rules! Chain { ( $($f:expr),+ ) => { ... }; }
Expand description
Adds multiple filters in a chain.
This means that each filter is run in sequence. When filtering, this means each event needs to be let through by each of the filters.
Examples
let chain = Chain!(ChannelFilter(1), KeyFilter(60)); let ev1 = NoteOnEvent(0,0,60,20); let ev2 = NoteOnEvent(0,0,61,20); let ev3 = NoteOnEvent(0,1,60,20); let ev4 = NoteOnEvent(0,1,61,20); let mut evs = EventStream::from(vec![&ev1, &ev2, &ev3, &ev4]); chain.run(&mut evs); assert_eq!(evs, ev3);
TODO test inverse