blob: b68750905b971a046ab9750e865e4a3a451909e4 [file] [log] [blame]
// Copyright 2022 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef POLYFILLS_BASE_FEATURE_LIST_H_
#define POLYFILLS_BASE_FEATURE_LIST_H_
#define BASE_DECLARE_FEATURE(feature) extern const gurl_base::Feature feature
#define BASE_FEATURE(feature, name, default_value) \
const gurl_base::Feature feature(name, default_value)
namespace gurl_base {
enum FeatureState {
FEATURE_DISABLED_BY_DEFAULT,
FEATURE_ENABLED_BY_DEFAULT,
};
struct Feature {
constexpr Feature(const char* name, FeatureState default_state)
: name(name), default_state(default_state) {}
const char* const name;
const FeatureState default_state;
};
class FeatureList {
public:
static bool IsEnabled(const Feature& feature) {
return feature.default_state == FEATURE_ENABLED_BY_DEFAULT;
}
};
} // namespace gurl_base
#endif // POLYFILLS_BASE_FEATURE_LIST_H_