filters: add 'or' chaining

This commit is contained in:
Adrien Béraud committed 2016-04-30 03:16:05 -04:00
1 parent 1af71e88a7
commit 08c21069c4
1 file changed
+9
+9
View File
@@ -146,9 +146,18 @@ struct Value
return true;
};
}
static Filter chainOr(Filter&& f1, Filter&& f2) {
if (not f1 or not f2) return AllFilter();
return [f1,f2](const Value& v) {
return f1(v) or f2(v);
};
}
Filter chain(Filter&& f2) {
return chain(std::move(*this), std::move(f2));
}
Filter chainOr(Filter&& f2) {
return chainOr(std::move(*this), std::move(f2));
}
};
static const Filter AllFilter() {