import rx.subject : Subject, SubjectObject; import std.array : appender; Subject!int sub = new SubjectObject!int; auto filtered = sub.filter!(n => n % 2 == 0); auto buffer = appender!(int[])(); auto disposable = filtered.subscribe(buffer); scope (exit) disposable.dispose(); sub.put(0); sub.put(1); sub.put(2); sub.put(3); import std.algorithm : equal; assert(equal(buffer.data, [0, 2][]));
Implements the higher order filter function. The predicate is passed to std.functional.unaryFun, and can either accept a string, or any callable that can be executed via pred(element).