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());