{% from 'macros.tmpl' import license %}
{{license()}}

#include "config.h"
#include "platform/RuntimeEnabledFeatures.h"

namespace blink {

{% for feature_set in feature_sets %}
void RuntimeEnabledFeatures::set{{feature_set|capitalize}}FeaturesEnabled(bool enable)
{
    {% for feature in features if feature.status == feature_set %}
    set{{feature.name}}Enabled(enable);
    {% endfor %}
}

{% endfor %}
{% for feature in features if not feature.custom %}
{% filter enable_conditional(feature.condition) %}
bool RuntimeEnabledFeatures::is{{feature.name}}Enabled = {{'true' if feature.status == 'stable' else 'false'}};
{% endfilter %}
{% endfor %}

} // namespace blink
