macro_rules! for_each_query_vtable {
(ALL, $tcx:expr, $closure:expr) => { ... };
(CACHE_ON_DISK, $tcx:expr, $closure:expr) => { ... };
}Expand description
Given a filter condition (e.g. ALL or CACHE_ON_DISK), a tcx,
and a closure expression that accepts &QueryVTable, this macro
calls that closure with each query vtable that satisfies the filter
condition.
This needs to be a macro, because the vtables can have different key/value/cache types for different queries.
This macro’s argument syntax is specifically intended to look like
plain Rust code, so that for_each_query_vtable!(..) calls will be
formatted by rustfmt.
To avoid too much nested-macro complication, filter conditions are implemented by hand as needed.