pub fn named_feature_filter<'g: 'a, 'a>(
    base: impl FeatureFilter<'g> + 'a,
    features: impl IntoIterator<Item = &'a str>,
) -> impl FeatureFilter<'g> + 'a {
    let mut base = base;
    let features: HashSet<_> = features.into_iter().collect();
    FeatureFilterFn::new(move |feature_graph, feature_id| {
        if base.accept(feature_graph, feature_id) {
            return true;
        }
        match feature_id.label() {
            FeatureLabel::Named(feature) => features.contains(feature),
            _ => {
                // This is the base feature. Assume that it has already been selected by the base
                // filter.
                false
            }
        }
    })
}
Returns a `FeatureFilter` that selects everything from the base filter, plus these additional
feature names -- regardless of what package they are in.

This is equivalent to a build with `--features`, and is typically meant to be used with one
package.

For filtering by feature IDs, use `feature_id_filter`.
guppy/src/graph/feature/query.rs