Macro rmididings::Not [−][src]
macro_rules! Not { ( $f:expr ) => { ... }; }
Expand description
Inverses the effect of filters.
The Not!()
macro accepts a single argument, which is another FilterTrait.
The behavior of modifiers and generators is unchanged.
Examples
let filter = Not!(KeyFilter(60)); let ev1 = NoteOnEvent(0,0,60,20); let ev2 = NoteOnEvent(0,0,61,20); let mut evs = EventStream::from(vec![&ev1, &ev2]); filter.run(&mut evs); assert_eq!(evs, ev2);
let f1 = KeyFilter(60); let f2 = Not!(KeyFilter(60)); let f3 = Not!(Not!(KeyFilter(60))); let mut evs = EventStream::from(NoteOnEvent(0,0,60,20)); f1.run(&mut evs); assert!(!evs.is_empty()); let mut evs = EventStream::from(NoteOnEvent(0,0,60,20)); f2.run(&mut evs); assert!(evs.is_empty()); let mut evs = EventStream::from(NoteOnEvent(0,0,60,20)); f3.run(&mut evs); assert!(!evs.is_empty());