// 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 QUICHE_COMMON_PLATFORM_DEFAULT_QUICHE_PLATFORM_IMPL_QUICHE_FLAG_UTILS_IMPL_H_
#define QUICHE_COMMON_PLATFORM_DEFAULT_QUICHE_PLATFORM_IMPL_QUICHE_FLAG_UTILS_IMPL_H_

#define QUICHE_RELOADABLE_FLAG_COUNT_IMPL(flag) \
  do {                                          \
  } while (0)
#define QUICHE_RELOADABLE_FLAG_COUNT_N_IMPL(flag, instance, total) \
  do {                                                             \
  } while (0)

#define QUICHE_RESTART_FLAG_COUNT_IMPL(flag) \
  do {                                       \
  } while (0)
#define QUICHE_RESTART_FLAG_COUNT_N_IMPL(flag, instance, total) \
  do {                                                          \
  } while (0)

#define QUICHE_CODE_COUNT_IMPL(name) \
  do {                               \
  } while (0)
#define QUICHE_CODE_COUNT_N_IMPL(name, instance, total) \
  do {                                                  \
  } while (0)

#endif  // QUICHE_COMMON_PLATFORM_DEFAULT_QUICHE_PLATFORM_IMPL_QUICHE_FLAG_UTILS_IMPL_H_
